社区讨论

玄学问题

CF1582F2Korney Korneevich and XOR (hard version)参与者 2已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@lxwxojod
此快照首次捕获于
2024/06/27 15:19
2 年前
此快照最后确认于
2024/06/27 18:49
2 年前
查看原帖
为什么下面的代码,把标有AC的行换成标有RE的行就会RE on test 57?它们不是等价的吗?
CPP
#include <bits/stdc++.h>
using namespace std;
const int maxa=8207;
vector<int> f[maxa];
int g[maxa];
bitset<maxa> ans;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	ans[0]=1;
	for(int i=0;i<8192;i++) f[i].push_back(0),g[i]=8191;
	int n;
	cin>>n;
	for(int i=1,a;i<=n;i++){
		cin>>a;
		for(int j=0;j<f[a].size();j++){  //AC
			int x=f[a][j]^a;  //AC
	//	for(auto j:f[a]) {  //RE
		//	int x=j^a;  //RE
			ans[x]=1;
			while(g[x]>a) f[--g[x]].push_back(x);
		}
		f[a].clear();
	}
	cout<<ans.count()<<'\n';
	for(int i=0;i<8192;i++) if(ans[i]) cout<<i<<' ';
	cout<<'\n';
}

回复

4 条回复,欢迎继续交流。

正在加载回复...