洛谷P1125 [NOIP2008 提高组] 笨小猴 C语言/C++

news/2024/4/20 4:40:09/文章来源:https://blog.csdn.net/weixin_43708800/article/details/129056480

[NOIP2008 提高组] 笨小猴

题目描述

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

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

输入格式

一个单词,其中只可能出现小写字母,并且长度小于 100100100

输出格式

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

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

样例 #1

样例输入 #1

error

样例输出 #1

Lucky Word
2

样例 #2

样例输入 #2

olympic

样例输出 #2

No Answer
0

提示

【输入输出样例 1 解释】

单词 error 中出现最多的字母 r\texttt rr 出现了 333 次,出现次数最少的字母出现了 111 次,3−1=23-1=231=2222 是质数。

【输入输出样例 2 解释】

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

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

noip2008 提高第一题

所需变量
int a[30];//为了装所有字母的数组a,初始值均为0

int max;//代表字幕出现最多的次数

int min;//代表字母出现最小的次数,初始值为100

int i;//循环变量

char temp;//用于接收字符串中的每个字母

我们首先要编写一个判断质数的小函数,只要从2开始,看是否能被这个数整除,如果能那么代表这个数不是质数,如果没有因子(即只有1和它本身),那么就代表是质数,返回1代表质数,返回0代表不是质数

int solution(int a){for(int i = 2;i<=a/2;i++){if(a%i == 0){return 0;}}return 1;
}

然后我们再一个字母一个字母接收的过程中,每当是a那么我就就让a[0]++,如果是b那么就让a[1]++;直到读取完毕,那么我们就获得所有字母的个数了,部分代码如下:

while(true){scanf("%c",&temp);if(temp == '\n'){break;}a[temp-96]++;}

然后就是对每个字母判断,首先如果是0,那么就表示这个字母根本没出现过,那么我们不能进行判断,因为如果把未出现的字母加入进去,那么最小值一定是0,就违背题目意思,然后就是判断谁是最大值,谁是最小值,得到之后然后让其相减,最后在判断是否是质数,如果是质数就输出Lucky Word,如果不是就输出 No Answer
最后将上面的代码拼接起来就得到下面的代码:
该算法本人认为比较优,如果有更好的想法,欢迎q我!

#include<iostream>
using namespace std;
int solution(int a){for(int i = 2;i<=a/2;i++){if(a%i == 0){return 0;}}return 1;
}
int main(){int a[30] = {0},max = 0,min = 100,i;char temp;while(true){scanf("%c",&temp);if(temp == '\n'){break;}a[temp-96]++;}for(i = 1;i<=26;i++){if(a[i] == 0){continue;}if(a[i]<min){min = a[i];}if(a[i]>max){max = a[i];}}max = max-min;if(max<2){cout<<"No Answer\n0\n";}else{if(solution(max)){cout<<"Lucky Word"<<endl<<max<<endl;}else{cout<<"No Answer\n0\n";}}return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72197.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA集合之并发集合

从Java 5 开始&#xff0c;在java.util.concurrent 包下提供了大量支持高效并发访问的集合接口和实现类&#xff0c;如下图所示&#xff1a; 以CopyOnWrite开头的集合即写时复制的容器。通俗的理解是当我们往一个容器添加元素的时候&#xff0c;不直接往容器添加&#xff0c;而…

直播预告 | 嵌入式BI如何将数据分析真正融入业务流程

在信息化高速发展的今天&#xff0c;数据成为企业最有价值的资产之一。而数据本身很难直接传递有价值的信息&#xff0c;只有通过对数据进行挖掘、分析&#xff0c;才能让数据真正成为生产力。 商业智能&#xff08;BI&#xff09;应运而生&#xff0c;可以帮助企业更好地从数…

Julia 交互式命令窗口

执行 julia 命令可以直接进入交互式命令窗口&#xff1a; $ julia __ _ _(_)_ | Documentation: https://docs.julialang.org(_) | (_) (_) |_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.| | | | | | |/ _ | || |…

nginx的介绍及源码安装

文章目录前言一、nginx介绍二、nginx应用场合三、nginx的源码安装过程1.下载源码包2.安装依赖性-安装nginx-创建软连接-启动服务-关闭服务3.创建nginx服务启动脚本4.本实验---纯代码过程前言 高可用&#xff1a;高可用(High availability,缩写为 HA),是指系统无中断地执行其功…

win7下安装postgreSQL教程

系统环境&#xff1a;Windows 7 旗舰版 64位操作系统 安装版本&#xff1a;postgresql-9.1.4-1-windows-x64 安装步骤&#xff1a; 1、下载系统对应的软件版本&#xff1b; 2、双击“postgresql-9.1.4-1-windows-x64.exe”打开安装窗口&#xff1b; 3、Welcome页&#xff0c;…

图解操作系统

硬件结构 CPU是如何执行程序的&#xff1f; 图灵机的工作方式 图灵机的基本思想&#xff1a;用机器来模拟人们用纸笔进行数学运算的过程&#xff0c;还定义了由计算机的那些部分组成&#xff0c;程序又是如何执行的。 图灵机的基本组成如下&#xff1a; 有一条「纸带」&am…

allure简介

allure介绍allure是一个轻量级&#xff0c;灵活的&#xff0c;支持多语言的测试报告工具多平台的&#xff0c;奢华的report框架可以为dev/qa提供详尽的测试报告、测试步骤、log也可以为管理层提供high level统计报告java语言开发的&#xff0c;支持pytest,javaScript,PHP等可以…

C语言——动态内存管理

目录0. 思维导图&#xff1a;1. 为什么存在动态内存分配2. 动态内存函数介绍2.1 malloc和free2.2 calloc2.3 realloc3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态内存开辟的空间越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部…

django+celery+ RabbitMQ自定义多个消息队列

关于django celery的使用网上有很多文章&#xff0c;本文就不多做更多的说明。 本文使用版本 python3.8.15 Django3.2.4 celery5.2.7celery.py from __future__ import absolute_import, unicode_literals import os from celery import Celery from kombu import Exchange, …

毕业后想从事软件测试,现在需要学习哪些内容呢

在你选择学习之前&#xff0c;要先考虑一下这个是不是你喜欢的发展方向&#xff0c;而不是只听别人推荐就直接做了选择先了解下软件测试是做什么的以及未来发展前景&#xff0c;最后才是如何自学 软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说…

Windows启动docker客户端报错:Hardware assisted virtualization and enabled in the BIOS

报错内容 : &#x1f31f;1.在控制面板中点击 启用或关闭Windows功能&#x1f31f;2.勾选如下复选框&#x1f31f;3.Windows功能中没有Hyper-V复选框怎么办?(如果有请跳过此步骤)此时不同人的电脑还会出现没有Hyper-V选项的情况1.打开 Windows PowerShell&#xff0c;输入 sys…

如何效率搭建企业流程系统?试试低代码平台吧

编者按&#xff1a;本文介绍了一款可私有化部署的低代码平台&#xff0c;可用于搭建团队流程管理体系&#xff0c;并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计&#xff0c;集成能力&#xff0c;流程审批&#xff0c;流程调试天翎是国内最早从事快速开发平台研发…

Hive内部表与外部表的区别具体说明

目录 1.在/opt/atguigu/目录下&#xff0c;新建两个txt文件 2.在hadoop的web端递归创建一个目录&#xff0c;存储这两个文件 3.查看web端的文件 一、内部表&#xff1a; 1.创建一个内部表&#xff0c;并指定内部表的存储位置 2.查看内部表&#xff0c;内部表中没有数据 …

2023.2 新方案 java代码混淆 java加密 字符串加密

Java字节码可以反编译&#xff0c;特别是创业公司,很好的项目很容易被别人破解反编译,造成很严重的损失,所以本混淆方案能很好的保护源码,而且在不断迭代,增强混淆效果,异常问题处理,达到保护项目的目的&#xff1a; 本次升级包括: 2023年02年19日 : ht-confusion-project-1.8…

PK体系下的教育场景—电子白板的应用

PK体系指基于国产飞腾&#xff08;Phytium&#xff09;CPU和麒麟&#xff08;Kylin&#xff09;操作系统的技术和产业体系&#xff0c;被誉为“中国架构”&#xff0c;目前基于PK体系的相关软硬件已经广泛用于党政、金融、电信等关基行业。教育信创在国家大战略布局下&#xff…

【技术分享】Web自动化之Selenium安装

Web 应用程序的验收测试常常涉及一些手工任务&#xff0c;例如打开一个浏览器&#xff0c;并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误&#xff0c;也比较费时间。因此&#xff0c;将这些任务自动化&#xff0c;就可以消除人为因素。Selenium 可以…

理解QPSK的实质-I右手正旋-Q左手负旋

正在学习5GNR PDCCH&#xff0c;用到QPSK。作一小结。 引言 我认为像我这样一个死民科&#xff0c;非主流非科班的通信人&#xff0c;理解QPSK的意义&#xff0c;甚至不比欧拉公式&#xff0c;或者是傅里叶变换小。 因为QPSK相较于BPSK&#xff0c;是真正第一次体现了调制的…

模拟默认密码自动生成-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-2】 模拟默认密码自动生成 【案例介绍】 1.任务描述 本例要求编写一个程序&#xff0c;模拟默认密码的自动生成策略&#xff0c;手动输入用户名&#xff0c;根据用户名自动生成默认密码。在生成密码时&#xff0c;将用户名反转即为默认的密码。 2.运行结果 运行结…

Power BI 数据处理介绍(数据初始调整、合并列及查看数据结构)

本系列的文章&#xff1a; 安装流程和示例介绍&#xff1a; 《Power BI windows下载安装流程&#xff09;》《Power BI 11个必学官方示例数据案例&#xff08;附下载链接&#xff09;》 数据导入阶段介绍&#xff1a; 《Power BI 数据导入&#xff08;SQL Server、MySQL、网页…

C++(42)-FSM-有限状态机

1.FSM 是什么&#xff1f; 一种用来进行对象行为建模的工具&#xff0c;用于描述对象在生命周期内所经历的状态序列&#xff0c;以及如何响应来自外界的各种事件。2.FSM 组成&#xff1a;状态、事件、动作3.FSM类型&#xff1a; 3.1Moore: 输出&#xff1a;当前状态有关…