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

[NOIP2008 提高组] 笨小猴

时间:2024-02-05 21:22:24浏览次数:37  
标签:输出 Word minn 提高 NOIP2008 Lucky 笨小猴 maxn 质数

[NOIP2008 提高组] 笨小猴

来自洛谷:[https://www.luogu.com.cn/problem/P1125]
Openjudge:[http://noi.openjudge.cn/ch0109/06/]

普及难度,其实不难。

  1. 我们先审题.

maxn 是单词中出现次数最多的字母的出现次数,minn 是单词中出现次数最少的字母的出现次数
第一行输入字符串,假设输入的的单词是 Lucky Word,那么输出 Lucky Word,否则输出 No Answer
第二行是一个整数,如果输入单词是 Lucky Word,输出 maxn−minn 的值,否则输出 0

  1. 我们如何统计出现字母的次数?我这里采用 桶思想 ,我们定义一个整型数组 b ,输入的字符串为 str (string str);
    我们可以知道字符都是小写字母,根据ASCII 表最小的小写字母是 97-a 所以我们把 a 作为 0 所以可以表示为 str[i-97] 这样我们就能把26个字母列为 0-25。如果给一个字符串为:abc,我们就可以给他们记四个桶为 0-1-2
  2. 接下来我们要给桶装“水”了 b[str[i]-97]++。我们就可以为桶 0-1-2 都倒上一杯“水”。
    | a | b | c |
    | ---- | ---- | ---- |
    | 1 | 1 | 1 |
  3. 接着就是找出桶中“水”最多 maxn 和最少 minn 了。
  4. 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 在一般领域,对正整数n,如果用2到|根号2|之间的所有整数去除,均无法整除,则n为质数。 依据这些定义我们很容易写出判断质数的代码。
  5. 我们用桶将 maxnminn 求出之后代入质数判断,若为:输出 Lucky Word endl maxn-minn,反之:输出 No Answer endl 0(输出 0 )。

成品代码:

#include<bits/stdc++.h>
using namespace std;

string s;
int maxn,minn,b[27]; 
int main(){
	//桶 
	getline(cin,s);
	for(int i=0;i<s.size();i++)
		b[s[i]-97]++;
	for(int i=0;i<26;i++){
		if(b[i]==0)
			continue;
		if(minn==0)
			minn=b[i];
		maxn=max(maxn,b[i]);
		minn=min(minn,b[i]);
	}
	//质数判断 
	if(maxn-minn<2){	//小于2的不是质数,排除。 
		cout<<"No Answer"<<endl<<"0";
		return 0;
	}
	for(int i=2;i*i<=maxn-minn;i++){	//i*i等价于(maxn-minn)的平方 
		if((maxn-minn)%i==0){
			cout<<"No Answer"<<endl<<"0";
			return 0;
		}
	}
	cout<<"Lucky Word"<<endl<<maxn-minn;
	return 0;
}

标签:输出,Word,minn,提高,NOIP2008,Lucky,笨小猴,maxn,质数
From: https://www.cnblogs.com/SkyArbutus/p/18008848

相关文章

  • NTFS文件系统支持硬链接和符号链接,这两种链接机制都可以让不同的文件指向同一个物理位
    NTFS文件系统支持硬链接和符号链接,这两种链接机制都可以让不同的文件指向同一个物理位置,从而节省磁盘空间和提高文件系统的效率。虽然它们的用途相似,但是硬链接和符号链接有一些不同之处。硬链接:硬链接(HardLink)是指将多个文件名链接到同一个物理位置的一种机制。它可以让多个文......
  • 优化拼多多关键词搜索接口:提高查询响应速度的技巧
    在电商平台中,关键词搜索接口是用户寻找商品的重要途径。一个高效、快速的搜索接口能够极大地提升用户的购物体验。针对拼多多这样的大型电商平台,优化搜索接口的查询响应速度尤为重要。本文将深入探讨如何通过多种方法来优化拼多多关键词搜索接口。1.使用缓存技术缓存是提升读取速......
  • [NOIP2011 提高组] 聪明的质监员
    原题链接首先要读懂题目啊:[Wj>=W]其实是一种bool表达,即大于等于时取1,小于时取0,然后再进行求和。根据要求出最小值大概可以猜测要运用二分,那么我们来判断单调性,首先W在所有矿石的最大最小值之间取值,W越小Y越大,W越大Y越小(观察和推理都很容易得到),那么Y是符合单调性的,即可以运用......
  • 5个.NET开源且强大的快速开发框架(帮助你提高生产效率)
    中台Admin(Admin.Core)中台Admin(Admin.Core)是前后端分离权限管理系统,前端UI基于Vue3开发,后端Api基于.NET8.0开发。支持多租户、接口权限、数据权限、动态Api、任务调度、OSS文件上传、滑块拼图验证、国内外主流数据库自由切换和动态高级查询。集成统一认证授权、事件总线、......
  • Qt/C++音视频开发66-音频变速不变调/重采样/提高音量/变速变调/倍速播放/sonic库使用
    一、前言之前在做倍速这个功能的时候,发现快速播放会有滴滴滴的破音出现,正常1倍速没有这个问题,尽管这个破音间隔很短,要放大音量才能听到,但是总归是不完美的,后面发现,通过修改qaudiooutput的采样率,可以规避这个问题,破音不在出现了,但是音调变了,倍速越大变得越快,人声越发不清晰,变得尖......
  • Solo 开发者周刊 (第4期):什么样的新科技,能提高生活效率?
    这里会整合Solo社区每周推广内容、产品模块或活动投稿,每周五发布。在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解。本杂志开源,欢迎投稿。好文推荐AI生成前端组件的价值思考在这个AI时代,大家都希望AI可以帮我们尽量多地解决一些事物。......
  • 什么是电源模块效率 如何计算 提高效率的方法 BOSHIDA博士达
    什么是电源模块效率如何计算提高效率的方法BOSHIDA博士达电源模块效率是指输入电能转换为输出电能的比例,通常以百分比表示。高效率的电源模块能够最大限度地将输入电能转化为有用的输出电能,减少能量的损耗和浪费。以下是与电源模块效率相关的一些知识点:效率公式:电源模块的效率......
  • [NOIP2012 提高组] 借教室
    原题链接一道二分+差分的题目,作为学习前缀和和差分的引入题目非常合适。首先检验其单调性,如果一个申请人订单不用修改,那么其前面的申请人也不用修改,符合单调性。接着,这道题暴力的思路就很简单,但是看到运算量(n,m高达1e6),暴力的时间复杂度为O(n*m)显然超时。那么就是运用差分思想......
  • 洛谷题单指南-暴力枚举-P1149 [NOIP2008 提高组] 火柴棒等式
    原题链接:https://www.luogu.com.cn/problem/P1149题意解读:计算符合A+B=C时,火柴棍数量正好等于n,可以采用枚举A、B,然后计算出C,根据A、B、C计算出所有火柴棍数量,再加上4根加号、等号的,如果与n相等,即为一种合法等式。解题思路:题目的关键在于枚举A、B时,最大值的设定,不能超时。分析......
  • 如何用ChatGPT使开发效率提高50%以上?
    简介  ChatGPT是一个大型语言模型,由OpenAI开发。它被训练用于进行对话式交互,能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景,包括但不限于:智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知识和对多个领域的理解。它可以利用其训练数据中......