【题目链接】

ybt 1407:笨小猴
ybt 1851:【08NOIP提高组】笨小猴
OpenJudge NOI 1.9 06:笨小猴
洛谷 P1125 [NOIP2008 提高组] 笨小猴

【题目考点】

1. 散列存储

2. 质数

3. 求最值

【解题思路】

设数组chNum记录单词中每个字母出现的次数。
设函数判断一个数是不是质数。
输入单词,遍历单词字符串,统计出每个字母出现的次数。
求出出现最多和最少次的字母的出现次数,如果差值为质数,那么为Lucky Word,否则输出0。

【题解代码】

解法1:使用字符数组

chNum数组的散列函数为:下标 = 字符的ascii码

#include<bits/stdc++.h>
using namespace std;
#define N 105
bool isPrime(int n)//判断自然数n是否是质数
{if(n < 2)return false;for(int i = 2; i <= sqrt(n); ++i)if(n%i == 0)return false;return true;
}
int main()
{char s[N];cin >> s;int chNum[128] = {}, len = strlen(s), maxn = 0, minn = N;//chNum[i]:ascii码为i的字符出现的次数 for(int i = 0; i < len; ++i)chNum[s[i]]++; for(char i = 'a'; i <= 'z'; ++i)//遍历小写字母的ascii码 {if(chNum[i] > 0)//如果字符i在单词中存在 {maxn = max(maxn, chNum[i]);minn = min(minn, chNum[i]);}}if(isPrime(maxn - minn))cout << "Lucky Word" << endl << maxn - minn;elsecout << "No Answer" << endl << 0;return 0;
}

解法2:使用string类

chNum数组的散列函数为:下标 = 字符 - ‘a’

#include<bits/stdc++.h>
using namespace std;
#define N 105
bool isPrime(int n)//判断自然数n是否是质数
{if(n < 2)return false;for(int i = 2; i <= sqrt(n); ++i)if(n%i == 0)return false;return true;
}
int main()
{string s;cin >> s;int chNum[26] = {}, maxn = 0, minn = N;//chNum[i]:ascii码为i的字符出现的次数 for(int i = 0; i < s.length(); ++i)chNum[s[i]-'a']++; for(char i = 0; i < 26; ++i)//遍历小写字母的ascii码 {if(chNum[i] > 0)//如果字符i在单词中存在 {if(chNum[i] > maxn)maxn = chNum[i];if(chNum[i] < minn)minn = chNum[i];}}if(isPrime(maxn - minn))cout << "Lucky Word" << endl << maxn - minn;elsecout << "No Answer" << endl << 0;return 0;
}

信息学奥赛一本通 1407:笨小猴 | 1851:【08NOIP提高组】笨小猴 | OpenJudge NOI 1.9 06 | 洛谷 P1125 [NOIP2008 提高组] 笨小猴相关推荐

  1. 信息学奥赛一本通 1239:统计数字 | 1847:【07NOIP提高组】统计数字 | OpenJudge NOI 2.4 7909 | 洛谷 P1097 [NOIP2007 提高组] 统计数字

    [题目链接] ybt 1239:统计数字 ybt 1847:[07NOIP提高组]统计数字 一本通中限制不许使用STL,那么引入头文件不能写<bits/stdc++.h>,只能写<i ...

  2. 信息学奥赛一本通 1180 | 1946:【09NOIP普及组】分数线划定 | OpenJudge NOI 1.10 05 | 洛谷 P1068 [NOIP2009 普及组] 分数线划定

    [题目链接] ybt 1180:分数线划定 ybt 1946:[09NOIP普及组]分数线划定 OpenJudge NOI 1.10 05:分数线划定 洛谷 P1068 [NOIP2009 普及组] ...

  3. 信息学奥赛一本通 1098:质因数分解 | 1957:【12NOIP普及组】质因数分解 | OpenJudge NOI 1.5 43 | 洛谷 P1075 [NOIP2012 普及组] 质因数分解

    [题目链接] ybt 1098:质因数分解 ybt 1957:[12NOIP普及组]质因数分解 OpenJudge NOI 1.5 43:质因数分解 洛谷 P1075 [NOIP2012 普及组] 质 ...

  4. 信息学奥赛一本通 1958:【12NOIP普及组】寻宝 | OpenJudge NOI 1.12 06 | 洛谷 P1076 [NOIP2012 普及组] 寻宝

    [题目链接] ybt 1958:[12NOIP普及组]寻宝 洛谷 P1076 [NOIP2012 普及组] 寻宝 OpenJudge NOI 1.12 06:寻宝 [题目考点] 1. 模拟 2. 循环 ...

  5. 信息学奥赛一本通 1118:铺地毯 | 1863:【11NOIP提高组】铺地毯 | OpenJudge NOI 1.9 14 | 洛谷 P1003 [NOIP2011 提高组] 铺地毯

    [题目链接] ybt 1118:铺地毯 ybt 1863:[11NOIP提高组]铺地毯 OpenJudge NOI 1.9 14:铺地毯 洛谷 P1003 [NOIP2011 提高组] 铺地毯 [题目 ...

  6. 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树

    [题目链接] ybt 1107:校门外的树 ybt 1931:[05NOIP普及组]校门外的树 OpenJudge NOI 1.6 06:校门外的树 洛谷 P1047 [NOIP2005 普及组] 校 ...

  7. 信息学奥赛一本通 1089:数字反转 | 1953:【11NOIP普及组】数字反转 | OpenJudge NOI 1.5 29 | 洛谷 P1307 [NOIP2011 普及组] 数字反转

    [题目链接] ybt 1089:数字反转 ybt 1953:[11NOIP普及组]数字反转 OpenJudge NOI 1.5 29:数字反转 洛谷 P1307 [NOIP2011 普及组] 数字反转 ...

  8. 信息学奥赛一本通 1179:奖学金 | 1938:【07NOIP普及组】奖学金 | OpenJudge NOI 1.10 04 | 洛谷 P1093 [NOIP2007 普及组] 奖学金

    [题目链接] ybt 1179:奖学金 ybt 1938:[07NOIP普及组]奖学金 OpenJudge NOI 1.10 04:奖学金 洛谷 P1093 [NOIP2007 普及组] 奖学金 [题 ...

  9. 信息学奥赛一本通 1173:阶乘和 | OpenJudge NOI 1.6 15 | 洛谷 P1009 [NOIP1998 普及组] 阶乘之和

    [题目链接] ybt 1173:阶乘和 注:一本通上这题,应该把n≤50n\le50n≤50当做n≤100n\le100n≤100来看 OpenJudge NOI 1.6 15:阶乘和 洛谷 P100 ...

最新文章

  1. BCH再度领涨,BTC能否及时跟上
  2. 数据库-排序-升降序-多列
  3. mysql min怎么用_MySQL中MIN()函数的使用教程
  4. Linux内核分析之搭建Mykernel
  5. MySQL 优化之 EXPLAIN 关键字
  6. Vim编辑器运用的五个技巧
  7. CSS content 属性 CSS counter-increment 属性 CSS counter-reset 属性
  8. 2021-09-01175. 组合两个表 SQL
  9. 计算机软件专业搞腾讯地图,腾讯地图电脑离线版
  10. 湖南省计算机二级考试题库,湖南省计算机二级考试题库..doc
  11. 公司上市需要具备的条件有哪些
  12. 如何批量生成文件夹?
  13. Thoughtworks XStream介绍
  14. AndroidRecyclerView仿QQ相册功能
  15. c/c++ -nan(ind) NAN
  16. 数据库——实验八 触发器实验
  17. 【Docker】Docker Hub离线下载Dockerfile
  18. python scrapy爬取HBS 汉堡南美航运公司柜号信息
  19. 数据结构——2路归并排序
  20. python的rbind_左手用R右手Python系列—数据合并与追加

热门文章

  1. IE浏览器按Backspace返回上一页面
  2. 电脑显示屏突然一半变色并且抖动
  3. Ubuntu双屏的副屏抖动闪烁
  4. PostgreSQL外部表应用
  5. 项目经理两天要做的事
  6. 仿《雷霆战机》飞行射击手游开发--飞机(含源码库地址)
  7. 毕业设计之 ---基于机器视觉的答题卡识别
  8. Godaddy .net,.org域名续费优惠码
  9. 派森诺基因云:从柱形图到圆柱图
  10. 3dmax中线与线及点与点的焊接(缝合)