zcmu 1633: 酷酷的单词

1633: 酷酷的单词

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 300  Solved: 161
[Submit][Status][Web Board]

Description

输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出
现的次数都不同。
比如 ada 是酷的,因为 a 出现 2 次,d 出现 1 次,而 1 和 2 不同。再比如,banana 也是酷的,
因为 a 出现 3 次,n 出现 2 次,b 出现 1 次。但是,bbacccd 不是酷的,因为 a 和 d 出现的次数
相同(均为 1 次)。

Input

输入包含不超过 30 组数据。每组数据第一行为单词个数 n  (1<=n<=10000)。以下 n 行各包含一
个单词,字母个数为 1~30。

Output

对于每组数据,输出测试点编号和酷单词的个数。

Sample Input

2 ada bbacccd 2 illness a

Sample Output

Case 1: 1 Case 2: 0

 按题意,a为甚莫不是酷酷单词捏?

#include<bits/stdc++.h>
#define ll long long
#define ve vector
#define mp map
#define NO cout<<"NO"<<endl;
#define YES cout<<"YES"<<endl;
#define pre(i,a,b) for(int i=a;i<=b;i++)
#define rep(i,b,a) for(int i=b;i>=a;i--)
#define mem(a,b) memset(a,b,sizeof(a))
#define st string
#define N 10005
using namespace std;
const int maxn=1e6+5;
const ll mod =1e15;
const int dx[]={-1,0,1,0};
const int dy[]={0,1,0,-1};
//set<ll> s;
ve<ll> v;
priority_queue<ll, ve<ll>, greater<ll> >q;

int main(){
    mp<char,int>q;
    mp<char,int>::iterator it,ta;
    char s[maxn];
    int n,t=1;
    while(cin>>n){
    	int ans=0;
    	pre(i,0,n-1){
    		q.clear();
    		cin>>s;
    		for(int j=0;s[j]!='\0';j++)q[s[j]]++;
		int f=1;
		for(it=q.begin(); it!=q.end(); it++){
                   for(ta=q.begin(); ta!=q.end(); ta++){
                    if(it->first!=ta->first&&it->second==ta->second){
                        f=0;
                        break;
                    }
                }
                if(!f) break;
            }
            if(f)
	      if(q.size()>1||strlen(s)>1)//a为什么不酷,tnnd,为什么!!!
                    ans++;
	    }
        printf("Case %d: %d\n",t++,ans);
    }
    return 0;
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值