记录编号 204884 评测结果 AAAAAATATT
题目名称 [SYOI 2015] Asm.Def的微小贡献 最终得分 70
用户昵称 GravatarYXH_YXH 是否通过 未通过
代码语言 C++ 运行时间 15.697 s
提交时间 2015-11-04 18:01:52 内存使用 0.29 MiB
显示代码纯文本
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
const int MAXN=1010;
int N;
long long num[MAXN];
bool f[MAXN]={};
int ans[MAXN],len=0;
int temp=0;
void dfs(int k){///顺序 有影响
	if(!temp&&k){
		cout<<len<<endl;
		for(int i=1; i<=len; i++)printf("%d ",ans[i]);
		exit(0);
	}
	if(k>=N)return;
	for(int i=1; i<=N; i++){
		if(!f[i]){
			f[i]=1;
			temp=temp^num[i];
			ans[++len]=i;
			dfs(k+1);
			temp=temp^num[i];
			len--;
			f[i]=0;
		}
	}
}
void dfs2(int k){//顺序 无影响
	if(!temp&&len){
		cout<<len<<endl;
		for(int i=1; i<=len; i++)
			printf("%d ",ans[i]);
		exit(0);
	}
	if(k>=N)return;
	
	temp=temp^num[k+1];
	ans[++len]=k+1;
	dfs2(k+1);
	
	temp=temp^num[k+1];
	len--;
	dfs2(k+1);
}
int main(){
	freopen("asm_contribute.in","r",stdin);
	freopen("asm_contribute.out","w",stdout);
	
	cin>>N;
	for(int i=1; i<=N; i++)
		//cin>>num[i];
		scanf("%lld",&num[i]);
	for(int i=1; i<N; i++)
		for(int j=i+1; j<=N; j++)
			if(num[i]==num[j]){
				cout<<'2'<<endl<<i<<' '<<j<<endl;
				return 0;
			}
	dfs2(0);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}
/*
//实验 XOR ^
	int a[5]={0,1,2,3,5};
	for(int i=1; i<=4; i++){
		num[0]=num[0]^num[a[i] ];
		cout<<num[0]<<' ';
	}
	cout<<endl;
	for(int i=2; i<=4; i++){
		num[1]=num[1]^num[a[i] ];
		cout<<num[1]<<' ';
	}
	cout<<endl<<num[1]<<endl;
	//cout<<num[1]^num[2]^num[3]^num[5]<<endl;

1.递归
void (){
	if()
	for(){///顺序 有影响
		a++;
		void
		a--;
	}
}
void (){//顺序 无影响
	if()
	a++;
	void()
	a--;
	void()
}
2.long long
*/