CF1604B XOR Specia-LIS-t
题目大意
给出一个长度为 的整数序列 ,将其划分为 个连续子串。
设 是每个子串的最长上升字序列的长度。
求是否有一种划分方式使得 。
组数据。
对于 的数据,,,。
解题思路
显然,当 为偶数时,每个数都可自分一组,即 且 ,满足题意。
当 为奇数时,若可以找到一组 时,那么可以将 和 分成一组,其他每个数自分一组,此时 为 偶数且 ,,满足题意。
如果找不到一组 ,说明 单调递增,那么无论如何都会有奇数个 为奇数,此时必然无解。
具体见代码。
CODE
#include <bits/stdc++.h>
using namespace std;
int T, n;
int a[100007];
signed main()
{
scanf("%d", &T);
while(T--)
{
scanf("%d", &n);
for(int i = 1 ; i <= n; ++i) scanf("%d", &a[i]);
if(n % 2 == 0)
{
puts("YES");
continue;
}
int flag = 0;
for(int i = 2; i <= n; ++i)
{
if(a[i - 1] >= a[i]) flag = 1;
}
if(flag)
{
puts("YES");
}
else
{
puts("NO");
}
}
return 0;
}
本文来自博客园,作者:蒟蒻orz,转载请注明原文链接:https://www.cnblogs.com/orzz/p/18122098