t
a
g
:
tag:
tag:异或
思维
贪心
*1100
传送门 :
题意 : 给定一个数组,询问 是否可以将数组分为任意段,使得每段中的最长上升子序列的异或值为 0 0 0
思路 :
我们分贪心的分奇偶进行考虑
-
数组长度是偶数 我们将每个数看成一组,那么 1 ⊕ 1 ⊕ . . . 1 = 0 1\oplus 1\oplus...1=0 1⊕1⊕...1=0
-
如果数组长度是奇数的话 我们考虑将奇数提出一个数来,使得剩下的数组变为偶数,即其中一个分组中需要 [ x , y ] [x,y] [x,y]并且 x > = y x>=y x>=y
不知道是不是 A c w i n g Acwing Acwing对 & , ∣ , ⊕ \& ,|,\oplus &,∣,⊕讲的很少的原因(其实也没多少内容要讲)
总之就是对位运算不是很熟悉,位运算的同时牵扯到一些思考,我就感觉是很难的题了 code :
int n;
int a[N];
void solve(){
cin>>n;
for(int i=1;i>a[i];
int cnt = 0 ;
for(int i = 2; i
关注
打赏