90分求助
  • 板块学术版
  • 楼主hans108
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/26 17:16
  • 上次更新2024/8/26 20:09:43
查看原帖
90分求助
1427479
hans108楼主2024/8/26 17:16

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

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

输入格式 一个单词,其中只可能出现小写字母,并且长度小于 100100。

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

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

输入输出样例 输入 #1复制 error 输出 #1复制 Lucky Word 2 输入 #2复制 olympic 输出 #2复制 No Answer 0 说明/提示 【输入输出样例 1 解释】

单词 error 中出现最多的字母 \texttt rr 出现了 33 次,出现次数最少的字母出现了 11 次,3-1=23−1=2,22 是质数。

【输入输出样例 2 解释】

单词 olympic 中出现最多的字母 \texttt ii 出现了 11 次,出现次数最少的字母出现了 11 次,1-1=01−1=0,00 不是质数。

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

noip2008 提高第一题

#include <bits/stdc++.h>

using namespace std;

bool is_prime(int n)

{

if(n<=1)

{

	return false;
}
if(n==2||n==3)
{
	return true;
} 
for(int i=2;i<=sqrt(n);i++)
{

	if(n%i==0)
    
	{
    
		return false;
        
	}
    
	if(i>sqrt(n))
	{
		
        return true;
        
	}
    
}

}

int main()

{

string s;

cin>>s;

int min=100;

int max=0;

int l=0;

for(int i=0;i<s.size();i++)

{

	for(int j=0;j<s.size();j++)
    
	{
    
		if((int)s[j]==(int)s[i])
        
		{
        
			l++;
            
		}
        
	}
    
	if(l>max)
    
    {
    
		max=l;
        
	}
    
	if(l<min)
    
	{
    
		min=l;
        
	}
    
	l=0;
    
}

int c=max-min;

if(is_prime(c))

{

	cout<<"Lucky Word"<<endl<<c;
    
}

else

{

	cout<<"No Answer"<<endl<<0;
    
}

return 0;

} 90分求助 样例点二不对

2024/8/26 17:16
加载中...