zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    nginx:安装成windows服务
    org.aspectj.apache.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18
    数据库中间件
    架构策略
    谈判
    设计模式 总结 常用10种
    08 状态模式 state
    07 策略模式 strategy
    06 命令模式(不用)
    05 观察者模式 Observer
  • 原文地址:https://www.cnblogs.com/lidaxin/p/4859426.html
Copyright © 2011-2022 走看看