• NOIP2008 笨小猴


    1.      笨小猴

    (wird.pas/c/cpp)

     

    笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

    这种方法的具体描述如下:假设 maxn 是单词中出现次数最多的字母的出现次数,minn 是单词中出现次数最少的字母的出现次数,如果 maxn-minn 是一个质数,那么笨小猴就认为这是个 Lucky Word,这样的单词很可能就是正确的答案。

     

    【输入】

    输入文件 word.in 只有一行,是一个单词,其中只可能出现小写字母,并且长度小于 100。

     

    【输出】

    输出文件 word.out 共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;

    第二行是一个整数,如果输入单词是 Lucky Word,输出 maxn-minn 的值,否则输出 0。

     

    【输入输出样例1】

    word.in

    word.out

    error

    Lucky Word

    2

    【输入输出样例1解释】

    单词 error 中出现最多的字母 r 出现了 3 次,出现次数最少的字母出现了 1 次,3-1=2,2 是质数。

     【输入输出样例2】

    word.in

    word.out

    Olympic

    No Answer

    0

     【输入输出样例2解释】

    单词 olympic 中出现最多的字母 i 出现了 2 次,出现次数最少的字母出现了 1 次,2-1=1,1 不是质数。  

    【思路】

       统计+判断素数。可以提前构造primes表。

    【代码】

      

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 using namespace std;
     5 
     6 const int maxn = 100+10;
     7 int primes[maxn];
     8 int cnt[maxn];
     9 
    10 void get_primes() {
    11     int m=sqrt(maxn+0.5);
    12     primes[0]=primes[1]=1;
    13     for(int i=2;i<=m;i++) if(!primes[i]) {
    14         for(int j=i*i;j<=maxn;j+=i) primes[j]=1;
    15     }
    16 }
    17 int main() {
    18     ios::sync_with_stdio(false);
    19     get_primes();
    20     string str; cin>>str;
    21     for(int i=0;i<str.size();i++) cnt[str[i]-'a']++;
    22     int maxi=-(1<<30),mini=(1<<30);
    23     for(int i=0;i<26;i++) if(cnt[i]){
    24          maxi=max(maxi,cnt[i]);
    25          mini=min(mini,cnt[i]);
    26     }
    27     if(!primes[maxi-mini]) {
    28         cout<<"Lucky Word
    "<<maxi-mini;
    29     }
    30     else cout<<"No Answer
    "<<0;
    31     return 0;
    32 }
  • 相关阅读:
    【转】C++ ZLib压缩与解压缩
    【转】Log4j 配置最全说明
    【转】每个程序员都必须遵守的编程原则
    【转】MySQL忘记root密码
    【转】OpenGL开发环境配置
    Tomcat不能启动注意事项
    Tomcat不能启动注意事项
    Android通过php插入查询SQL数据库
    Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
    Ehcache学习总结(3)--Ehcache 整合Spring 使用页面、对象缓存
  • 原文地址:https://www.cnblogs.com/lidaxin/p/4859426.html
Copyright © 2020-2023  润新知