Chino with Train to the Rabbit Town

在这里插入图片描述在这里插入图片描述


可以相当当前位置,要么是前一位的答案,要么是新组成值为k的队列。所以我们可以记录前缀异或和,就可以比较方便地转移了。

AC代码:

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=5e5+10;
int dp[N],pos[N],n,k,sum,res;
signed main(){
	cin>>n>>k;	pos[0]=1;
	for(int i=1,x;i<=n;i++){
		scanf("%d",&x);	sum^=x;
		dp[i]=dp[i-1];
		if(pos[sum^k])	dp[i]=max(dp[i],dp[pos[sum^k]]+1);
		pos[sum]=i;	res=max(res,dp[i]);
	}
	cout<<res;
	return 0;
}
发布了416 篇原创文章 · 获赞 228 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43826249/article/details/103922128