笨小猴 2008年NOIP全国联赛提高组
2017-01-22 09:41
381 查看
笨小猴
2008年NOIP全国联赛提高组
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver
题目描述 Description
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。
输入描述 Input Description
输入文件word.in只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
输出描述 Output Description
输出文件word.out共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。
样例输入 Sample Input
样例一
error
样例二
olympic
样例输出 Sample Output
样例一
Lucky Word
2
样例二
No Answer
0
代码:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int main() { char a[200]; int b[200],minn=10000000,maxx=0; memset(b,0,sizeof(b)); cin>>a; int l=strlen(a); for(int i=0;i<l;i++)//注意,这儿不能边做边判断最小值,虽然最大值在更新,但b[z]是从0,开始的++之后minn会停在1而无法更新; { int z=int(a[i]); b[z]=b[z]+1; } for(int i=0;i<l;i++) { int z=int(a[i]); if(b[z]>maxx) maxx=b[z]; if(b[z]<minn) minn=b[z]; } int t=maxx-minn; int x=2; if(t<2) {cout<<"No Answer"<<endl<<'0'<<endl;return 0;} while(x<=floor(sqrt(t))) { if(t%x!=0) x++; else {cout<<"No Answer"<<endl<<'0'< 4000 ;<endl;return 0;} } cout<<"Lucky Word"<<endl<<t<<endl; return 0; }还有一种是题解里面的不就不多做解释了(跟桶排序思路差不多):
#include <iostream> #include <cstring> using namespace std; int zhishu(int x){ //判断质数 if(x==1||x==0) return 0; for(int i=3;i<x;i++) if(x%i==0) return 0; return 1; } int main(int argc, char const *argv[]) { string stri; int num[26]={0}; cin >> stri; for(int i=0;i<stri.length();i++){ num[stri[i]-'a']++; //入桶 } int maxn=0,minn=101; for(int i=0;i<26;i++){ //得到maxn,minn if(num[i]){ if(num[i]>=maxn) maxn=num[i]; if(num[i]<=minn) minn=num[i]; }else continue; } if(zhishu(maxn-minn)) cout << "Lucky Word" << endl << maxn-minn; else cout << "No Answer" << endl << 0; return 0; }
相关文章推荐
- 笨小猴 2008年NOIP全国联赛提高组
- 笨小猴 2008年NOIP全国联赛提高组
- wikioi 1169 传纸条 (2008年NOIP全国联赛提高组)
- 棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组
- 【动态规划】CODE[VS] 1169 传纸条【2008年NOIP全国联赛提高组】
- 1169 传纸条 2008年NOIP全国联赛提高组 个人博客:attack.cf
- Codevs 1169 传纸条 2008年NOIP全国联赛提高组
- 火柴棒等式(2008年NOIP全国联赛提高组)
- codevs1170 双栈排序(2008年NOIP全国联赛提高组)
- 【CS 1168】火柴棒等式 2008年NOIP全国联赛提高组
- Code Vs 1169 传纸条 && 2008年NOIP全国联赛提高组
- 双栈排序 2008年NOIP全国联赛提高组(二分图染色)
- Code Vs 1155 金明的预算方案&& 2006年NOIP全国联赛提高组
- 最短路 之 CODE[VS] 1041 Car的旅行路线 2001年NOIP全国联赛提高组
- 加分二叉树 2003年NOIP全国联赛提高组
- 同余方程 2012年NOIP全国联赛提高组
- 1044 拦截导弹 1999年NOIP全国联赛提高组 个人博客:attack.cf
- codevs 1044 拦截导弹 1999年NOIP全国联赛提高组
- 矩阵取数游戏 2007年NOIP全国联赛提高组(dp+高精)
- 划分型动态规划 之 CODE[VS] 1039 数的划分 2001年NOIP全国联赛提高组