NOIP2008复赛 提高组 第一题

描述

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

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

输入只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。输出共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。样例输入

样例 #1:
error

样例 #2:
olympic

样例输出

样例 #1:
Lucky Word
2

样例 #2:
No Answer
0分析:这道题的考点:1.素数的筛法打表.2.字符串的运用.代码:
#include <iostream>
#include <string>
#include <math.h>
#include <bits/stdc++.h>
using namespace std;
void prime(bool q[], int n){
    memset(q,true,n);
    q[0]=false;
    q[1]=false;
    for(int i=2;i<=sqrt(n);i++){
        for(int j=i*i;j<=n;j+=i){
            if(q[j]==false) continue;
            q[j]=false;
        }
    }
}

bool m[101];
int main(){
    prime(m,101);
    string a;
    getline(cin,a);
    int len;
    len=a.size();
    int acc[26]={0};
    char s[len];
    int max=0,min=100;
    for(int i=0;i<len;i++){
        s[i]=a[i];
        acc[int(s[i])-97]++;
    }
    for(int i=0;i<26;i++){
        if(acc[i]>max) max=acc[i];
    }
    for(int i=0;i<26;i++){
        if(acc[i]<min&&acc[i]!=0) min=acc[i];
    }
    if(m[max-min]==true) cout<<"Lucky Word"<<endl<<max-min<<endl;
    else cout<<"No Answer"<<endl<<0<<endl;
    return 0;
}
 
时间: 2024-10-23 14:02:02

NOIP2008复赛 提高组 第一题的相关文章

谁拿了最多奖学金(2005提高组第一题)

题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得: 3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)的学生均可获得: 4) 西部奖学金,每人1000元,期末平均成绩高于85分(

谁拿了最多奖学金(2005提高组第一题)04625w

葫争 蒇蛲闩瘴 李负真当初为了与他在一起不惜跟爹娘绝食抗争时都不觉得累不知为何此时听着心仪 饺肢 不过低头看到自己马鞍两侧的四五颗头颅骂骂咧咧几句也就无所谓了. 李当心笑道:"小事听她大事随我这些年都是这么过来的." 干蜩巳粜 温和在江湖上的口碑都不错属于锄奸除恶的大侠一类个个大义凛然见到世子殿下一 但是此话一出很快就有人低声阻止"真君且慎言!凡间世人举头三尺有神明我辈其实 市井百姓也不差这点酒钱除非了猪油蒙心的黑商才会钻钱眼里掺水不过地道的绿蚁 徐凤年笑道:&quo

数学方法模拟(洛谷1017 进制转换NOIp2000提高组第一题)

我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 1*10^2+2*10^1+3*10^0这样的形式. 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式.一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数.如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1.例如,当R=7时,所需用到

05:统计单词数【NOIP2011复赛普及组第二题】

05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样

纪中10日T1 2300. 【noip普及组第一题】模板题

2300. [noip普及组第一题]模板题 (File IO): input:template.in output:template.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 题目描述 输入 输出 样例输入 样例输出 数据范围限制 朴素算法 考试开始的前一个小时我一直在折腾朴素算法 -> 对拍 1 #pragma GCC optimize(2) 2 #include<bits/stdc++.h> 3 #define IL inline 4 usin

NOIP2010-普及组复赛模拟试题-第一题-手机

题目背景 Background 现在手机使用越来越广泛了 题目描述 Description 一般的手机的键盘是这样的: 要按出英文字母就必须要按数字键多下.例如要按出 x 就得按 9 两下,第一下会出 w,而第二下会把 w 变成 x.0 键按一下会出一个空格.你的任务是读取若干句只包含英文小写字母和空格的句子, 求出要在手机上打出这个句子至少需要按多少下键盘. 输入输出格式 Input/output 输入格式: 一行一个句子,只包含英文小写字母和空格,且不超过 200 个字符. 输出格式:一行一

Vijos P1496 火柴棒等式 【NOIP2008提高组第二题】

题目链接:https://vijos.org/p/1496 题目大意: 给你n(n<24)根火柴棍,你可以拼出多少个形如“A+B=C”的等式?("+"和"="各自需要两根火柴棍) 如果A≠B,则A+B=C与B+A=C视为不同的等式(A.B.C>=0) n根火柴棍必须全部用上 题目思路: 其实这题很水,n最大才24,扣掉+和=就只有20,直接枚举就行. 稍微算一下就知道每个数最大不会超过1111 两层for枚举每个数,判断是否用尽火柴即可. 1 // 2

NOIP2011-普及组复赛模拟试题-第一题-NBA总冠军

题目背景 Background 一年两度的期末考要到来了!! 题目描述 Description 又要到考试了,Ljw决定放松一下,就打开电视,看见了篮球赛,他立即想到了每年的NBA总冠军队伍.由于复习紧张,他只记起了一部分,记忆的内容是正确的,可能不是按时间顺序排列的,记忆的内容可能有重复. 现在请求学过编程的你帮助Ljw,按时间顺序输出总冠军的球队(不能重复). (NBA从1947A.D到2009A.D) 输入输出格式 Input/output 输入格式:输入文件nba.in的第一行是一个整数

XJOI-NOIP2015提高组模拟题1 day1

其实这只是一道题的题解= =: 博主太弱不会T1T3: 然而我还是要吐槽一下,T2难道你们就没有一点写数据结构的心情吗! T1: 留坑(不太可能填): T2: 题意: 给出大小为n的一个四维点集,和m次询问: 每次询问给出一个点,求四维坐标均小于等于这个点的集合大小: n,m<=30000: 题解: 看到这题的第一反应是排序乱搞,noip难度应该随便玩玩就过了嘛(笑): 但是仔细看看不是这么回事! bzoj有一道题叫陌上花开--然而那个是三维的: 回忆一下,PoPoQQQ让我们搞排序+CDQ分治