您的位置:首页 > 其它

Uva 10785 - The Mad Numerologist

2013-03-24 11:54 323 查看
字符串按要求的字典序

2Y

通过num来记录每个单词的输出次数

通过f来判别是否是元音

#include<stdio.h>
int f(char s){
	if(s=='A')return 0;	
	if(s=='E')return 0;	
	if(s=='I')return 0;	
	if(s=='O')return 0;	
	if(s=='U')return 0;	
	return 1;
	}
int main(){
	int k,z;
	scanf("%d",&z);
	for(k=1;k<=z;k++){
		int n,i,j;
		int l,r;
		scanf("%d",&n);
		r=n/2;
		l=(n+1)/2;		//l是元音个数,r是辅音个数 
		char yuan[]="AUEOI";
		int num[26],pyu=0;
		for(i=0;i<26;i++)num[i]=0;
		for(i=0;i<l;i++){
			num[yuan[pyu]-'A']++;
			if(num[yuan[pyu]-'A']==21)pyu++;
			}
		char fu[]="JSBKTCLDMVNWFXGPYHQZR";
		int pfu=0;
		for(i=1;i<=r;i++){
			num[fu[pfu]-'A']++;
			if(num[fu[pfu]-'A']==5)pfu++;
			}
		printf("Case %d: ",k);
		for(i=1;i<=n;i++){
			int aim;
			if(i%2==1)aim=0;
			else aim=1;
			for(j=0;j<26;j++){
				if(aim==f('A'+j)){
					if(num[j]){
						printf("%c",'A'+j);
						num[j]--;
						break;
						}
					}
				}
			}printf("\n");
		}
	return 0;
	}
题目:

这个名字有一个固定的长度N

先保证元音字母的价值和辅音字母的价值要最小,再保证名字要在字典序里面最小

第一个字符表示为1,元音字母在奇数位置,辅音在偶数位置

同一辅音最多出现5次,元音21次

第一行为数据数目N ( 0 < N <=250 )

以下N行包括一个数n( 0 < n < 211 ),表示你要输出的名字长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: