CF1905F.Field Should Not Be Empty
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a permutation† p of length n.
We call index x good if for all y<x it holds that py<px and for all y>x it holds that py>px. We call f(p) the number of good indices in p.
You can perform the following operation: pick 2 distinct indices i and j and swap elements pi and pj.
Find the maximum value of f(p) after applying the aforementioned operation exactly once.
†A permutation of length n is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array), and [1,3,4] is also not a permutation (n=3 but there is 4 in the array).
给你一个长度为 n 的排列† p。
我们称下标 x 是好的,当且仅当:对所有 y<x,都有 py<px;且对所有 y>x,都有 py>px。定义 f(p) 为排列 p 中好下标的个数。
你可以执行如下操作一次:任选两个不同的下标 i 和 j,并交换 pi 与 pj。
求在恰好执行一次上述操作后,f(p) 的最大可能值。
† 长度为 n 的排列是指由 1 到 n 这 n 个互不相同的整数以任意顺序组成的数组。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(数字 2 在数组中出现了两次),[1,3,4] 也不是排列(此时 n=3,但数组中出现了 4)。
输入格式
Each test consists of multiple test cases. The first line of contains a single integer t (1≤t≤2⋅104) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer n (2≤n≤2⋅105) — the length of the permutation p.
The second line of each test case contain n distinct integers p1,p2,…,pn (1≤pi≤n) — the elements of the permutation p.
It is guaranteed that sum of n over all test cases does not exceed 2⋅105.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤2⋅104),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤2⋅105),表示排列 p 的长度。
每个测试用例的第二行包含 n 个互不相同的整数 p1,p2,…,pn(1≤pi≤n),即排列 p 的元素。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, output a single integer — the maximum value of f(p) after performing the operation exactly once.
对于每个测试用例,输出一个整数——恰好执行一次操作后 f(p) 的最大值。
输入输出样例
输入#1
5 5 1 2 3 4 5 5 2 1 3 4 5 7 2 1 5 3 7 6 4 6 2 3 5 4 1 6 7 7 6 5 4 3 2 1
输出#1
3 5 2 3 2
说明/提示
In the first test case, p=[1,2,3,4,5] and f(p)=5 which is already maximum possible. But must perform the operation anyway. We can get f(p)=3 by choosing i=1 and j=2 which makes p=[2,1,3,4,5].
In the second test case, we can transform p into [1,2,3,4,5] by choosing i=1 and j=2. Thus f(p)=5.
在第一个测试用例中,p=[1,2,3,4,5],此时 f(p)=5,已达到可能的最大值。但仍然必须执行一次操作。若选择 i=1 和 j=2,可得到 p=[2,1,3,4,5],此时 f(p)=3。
在第二个测试用例中,通过选择 i=1 和 j=2,可将 p 变换为 [1,2,3,4,5],此时 f(p)=5。
输入解题思路,AI测评打分。不知道怎么写?