poj 3128

置换分数幂性质。

代码:

#include<iostream>
#include<fstream>
using namespace std;

void read(){
//	ifstream cin("in.txt");
	int i,j,k,s;
	cin>>k;
	char c[30];
	int num[30];
	int v[30];

	while(k--){
		cin>>c;
	
		memset(v,0,sizeof(v));
		memset(num,0,sizeof(num));
		for(i=0;i<26;i++)
			if(v[i]==0)
		{
			j=0;s=i;
			while(c[s]-'A'!=i)
			{
				j++;
				v[c[s]-'A']=1;
				s=c[s]-'A';
			}
			j++;
			v[i]=1;
			num[j]++;
		}
		for(i=2;i<=26;i+=2)
			if(num[i]%2)
			{
				cout<<"No"<<endl;
				break;
			}
		if(i>26) cout<<"Yes"<<endl;
	}
}
			


int main(){
	read();
	return 0;
}

posted on 2011-04-11 18:56  宇宙吾心  阅读(294)  评论(0)    收藏  举报

导航