比赛 顾研NOIP2011模拟赛 评测结果 AAAAAAAAAT
题目名称 项链 最终得分 90
用户昵称 不列颠呆毛 运行时间 1.311 s
代码语言 C++ 内存使用 3.15 MiB
提交时间 2012-10-18 10:51:49
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;

int n,s[30];
int ans;

int dfs(int st,int x,int k){
    if (st==0) ans=max(ans,k);
    if (k+n-x<ans || x>n) return 0;
    for (int i=x; i<=n; i++){
	dfs(st^s[i],i+1,k+1);
	dfs(st,i+1,k);
    }
    return 0;
}
int main(){
    freopen("necklaced.in","r",stdin);
    freopen("necklaced.out","w",stdout);
    scanf("%d\n",&n);
    for (int i=1; i<=n; i++){
	string x;
	cin>>x;
	for (unsigned int k=0; k<x.length(); k++)
	    s[i]+=1<<(x[k]-65);
	scanf("\n");
    }
    dfs(0,1,0);
    cout<<ans;
    return 0;
}