致幻度测试 楠枫误食了毒蘑菇,主治医生在给他挂上点滴后,开始对他进行致幻度检查。医生采取的检查方法是,给楠枫一个单词,让他照着誊抄一遍。但是由于楠枫被幻觉影响,并不能很好的完成这个测试。比如他也许会把 “anagram” 抄成 “nagaram”,也可能把 “rat” 抄成 “car”。 对于字符串 S 和 T,若 S 和 T 中的每个字符出现的次数都相同,则称 S 和 T 互为字母异位词。主治医生给出了 n 个单词来测试楠枫,如果这 n 个单词测试的结果有 80% 及以上是字母异位词而非错误单词,才会认为楠枫的幻觉有所减轻。现在给出 n 个单词(都由英文字母构成,区分大小写),以及楠枫的誊抄结果,需要你帮忙判断一下楠枫的致幻情况是否减轻。 输入格式 第一行一个整数,代表 n 个测试。 接下来 2 行,第一行是 n 个待测试单词,第二行是 n 个被誊抄的单词。 输出格式 输出一个单词。如果致幻情况减轻了,则输出 Yes,否则输出 No。 样例 Input 1 6 PObj yulvWT CHUx kZxdRDdfTdmzi NiySzED tmPhUgfWucVEo ObjP yulvWT CHUx kgxdRDdfTWmzi NizySED tmPhUgfWucVEo Output 1 Yes Input 2 4 ixeQDmLhbDxjS WkqJAeyxGfVOch XnEGjsNfB nAAsga hjDxbiLxSDmQe hekGfqJVcWxOyA NnjBXfGEs AAsa Output 2 No 样例解释 在 sample1 中,有 6 个测试,分别是:
PObj -> ObjP yulvWT -> yulvWT CHUx -> CHUx kZxdRDdfTdmzi -> kgxdRDdfTWmzi NiySzED-> NizySED tmPhUgfWucVEo -> tmPhUgfWucVEo 其中 5 个测试的结果都是字母异位词,大于 80%,所以输出 Yes。
数据范围 1 ≤ n ≤ 1000
#include<bits/stdc++.h>
using namespace std;
struct fn{
string a;
}k[1005];
int n,s;
int main()
{
cin>>n;
int m=n,i=1;
while(n--){
cin>>k[i].a;
i++;
}
n=m;
int id=1;
while(m--){
bool flag=1;
string b;
cin>>b;
string a=k[id].a;
for(int i=0;i<b.size();i++){
bool findbi=0;
for(int j=0;j<b.size();j++){
if(b[i]==a[j]){
a[j]=0;
findbi=1;
break;
}
}
if(findbi!=1){
//cout<<b[i]<<endl;
flag=0;
break;
}
}
//cout<<endl;
if(flag){
// cout<<b<<endl;
s++;
}
}
// cout<<"s: "<<s<<endl;
if(s*1.0/n*100>=80) cout<<"Yes";
else cout<<"No";
}//WA55分