比赛 顾研NOIP2011模拟赛 评测结果 AAAAAAAAAA
题目名称 项链 最终得分 100
用户昵称 Czb。 运行时间 0.083 s
代码语言 C++ 内存使用 1.79 MiB
提交时间 2012-10-18 10:10:42
显示代码纯文本
#include<stdio.h>
#include<string.h>

int n,ans,a[30];

bool flag[30][30];

char s[30][1000];

void init()
{
	int i,j;
	for(i=1;i<=n;i++)
	{
		int l=strlen(s[i]);
		for(j=0;j<l;j++)
		{
			flag[i][s[i][j]-'A']=true;
		}
		for(j=0;j<26;j++)
		{
			a[i]<<=1;
			if(flag[i][j])
				a[i]++;
		}
	}
}

void dfs(int k,int flag,int count)
{
	if(k>n)
	{
		if(flag==0)
			ans=ans>count?ans:count;
		return;
	}
	dfs(k+1,flag,count);
	dfs(k+1,flag^a[k],count+1);
}

int main()
{
	freopen("necklaced.in","r",stdin);
	freopen("necklaced.out","w",stdout);
	int i;
	scanf("%d\n",&n);
	for(i=1;i<=n;i++)
		scanf("%s\n",s[i]);
	init();
	dfs(1,0,0);
	printf("%d\n",ans);
	return 0;
}