首页 > 其他分享 >P1125 [NOIP2008 提高组] 笨小猴

P1125 [NOIP2008 提高组] 笨小猴

时间:2024-01-22 23:22:27浏览次数:30  
标签:minn 样例 质数 NOIP2008 单词 笨小猴 maxn text P1125

1.题目介绍

[NOIP2008 提高组] 笨小猴

题目描述

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

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

输入格式

一个单词,其中只可能出现小写字母,并且长度小于 \(100\)。

输出格式

共两行,第一行是一个字符串,假设输入的的单词是 Lucky Word,那么输出 Lucky Word,否则输出 No Answer

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

样例 #1

样例输入 #1

error

样例输出 #1

Lucky Word
2

样例 #2

样例输入 #2

olympic

样例输出 #2

No Answer
0

提示

【输入输出样例 1 解释】

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

【输入输出样例 2 解释】

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

(本处原题面错误已经修正)

noip2008 提高第一题

2.题解

2.1

思路

这里其实不需要使用哈希表,用一个数组存储即可,因为我无需知道是哪个字母出现次数最多,最少。
后面求出maxn和minn后,得到差值temp
对于temp为0,1,2分别讨论一下

接下来的问题就是判断质数了:
1.质数的概念是只能被1和本身除尽,其他均不可除尽,那我们需要从2遍历到m-1,一个一个检验嘛?
2.假设存在 m = x * y; 如果 x > m^(1/2) 且 y > m^(1/2)必然: x*y > m
3.所以必然有一个因数是 <= m^(1/2), 我们只需要从 2 遍历到 m^(1/2)即可

代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
	unordered_map<int, int> word;
	string str;
	cin >> str;
	for (char ch : str)
		word[ch - 'a']++;
	
	int maxn = 0, minn = 100;
	for(auto it = word.begin(); it != word.end(); it++){
		maxn = max(maxn, it->second);
		minn = min(minn, it->second);
	}
	
	int temp = maxn - minn;
	if (temp == 0 || temp == 1)
	{
		cout << "No Answer" << endl << 0; 
		return 0; 
	}		
	
	if(temp == 2){
		cout << "Lucky Word" << endl << temp;
		return 0;
	}
	
	for (int i = 2; i  <= sqrt(temp); i++)
		if (temp % i == 0)
		{
			cout << "No Answer" << endl << 0; 
			return 0;
		}
	cout << "Lucky Word" << endl << temp;
}

标签:minn,样例,质数,NOIP2008,单词,笨小猴,maxn,text,P1125
From: https://www.cnblogs.com/trmbh12/p/17981371

相关文章

  • [Luogu] P1058 [NOIP2008 普及组] 立体图
    P1058[NOIP2008普及组]立体图模拟赛时候要是做出来这题就能拿饮料了:(题目传送门思路先打个输出长方体的函数:(其中\((x,y)\)表示该长方体的左上角)voiddraw(intx,inty){c[x][y+2]='+';c[x][y+6]='+';c[x+2][y]='+';c[x+2][y+4]='+';c[x+5][y]='+';c[x+5]......
  • 【洛谷 P1125】[NOIP2008 提高组] 笨小猴 题解(字符串+映射+集合)
    [NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设是单词中出现次数最多的字母的出现次数,是单词中出现次数最少的字母的出现次数,......
  • 洛谷P1058 [NOIP2008 普及组] 立体图
    写在前面题解更新较少,请勿嗔怪。本文粗鄙而简陋,要获得更好的阅读体验,请移步https://www.luogu.com.cn/problem/solution/P1058。NOIp普及组2008的第四题,题目网站https://www.luogu.com.cn/problem/P1058。关于题目[NOIP2008普及组]立体图题目描述小渊是个聪明的孩子,他经......
  • P1056 NOIP2008 普及组 排座椅
    \(P1056\)[\(NOIP2008\)普及组]排座椅题解先想一下算法:因为题目里出现了最优解,最好的方案关键字,所以一定会用贪心。然后从题目给的样例解释可以看到:如果相邻的两行有许多组说话的同学,那么在这两行中间加一条过道是非常划算的;同理,列也是如此。恍然大悟,只要找出划分哪些......
  • 「NOIP2008 普及组」ISBN 号码 题解
    前言转自博客,早期黑历史作品。这是本蒟蒻の第一篇题解qwq,发在博客上,还请多多关照.这道题是一道橙题,难度没有太大的问题,对于大犇们来说自然是一遍过的,本蒟就只能调调再交了.题面传送门题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、1......
  • P1056 [NOIP2008 普及组] 排座椅
    1.变量maxn和g在for循环内声明和初始化,是因为它们用于追踪每次循环中的最大值及其对应的索引。如果将maxn和g的声明移到for循环外部,它们将保留上一次迭代的值,并且比较语句if(a[j]>maxn)或if(b[j]>maxn)将无法正常工作。在每次迭代中将它们初始化为-1的目的......
  • P1055 [NOIP2008 普及组] ISBN 号码
    [NOIP2008普及组]ISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括$9$位数字、$1$位识别码和$3$位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码......
  • [每天例题]蓝桥杯 C语言 笨小猴
    笨小猴题目  思路分析1.首先难点是找出出现次数最多与最少的字母,我们可以通过建立两个数组,一个是字符数组,用来存储字符串,一个是整形数组,用来记录每个字母对应的出现次数,然后再使用for—if配合找出最大最小数2,第二个可以通过调用函数来确定差值是否为素数代码#include<......
  • [NOIP2008 提高组] 笨小猴
    [NOIP2008提高组]笨小猴题目描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设\(\text{maxn}\)是单词中出现次数最多的字母的出现次数,\(\text{minn}\)是......
  • 「NOIP2008」笨小猴
    笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质......