当前位置: 首页 > news >正文

P1125 [NOIP 2008 提高组] 笨小猴

这是一个经典的字符串处理与质数判断问题。解决这个问题的核心在于字符计数求极值以及质数判定


核心思路

  1. 统计频率:使用一个长度为 26 的整数数组 cnt[26] 来记录每个字母出现的次数(下标 s[i] - 'a')。
  2. 获取极值
    • maxn:遍历数组找最大值。
    • minn:遍历数组找大于 0 的最小值(因为题目要求的是单词中出现的字母)。
  3. 质数判断:计算 \(diff = maxn - minn\)。需要注意 \(0\)\(1\) 都不是质数。

C++ 代码实现

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>using namespace std;// 质数判断函数
bool is_prime(int n) {if (n < 2) return false;for (int i = 2; i * i <= n; i++) {if (n % i == 0) return false;}return true;
}int main() {string s;cin >> s;int cnt[26] = {0};for (char c : s) {cnt[c - 'a']++;}int maxn = 0, minn = 100; // 单词长度小于100,初始minn设为100即可for (int i = 0; i < 26; i++) {if (cnt[i] > 0) {maxn = max(maxn, cnt[i]);minn = min(minn, cnt[i]);}}int diff = maxn - minn;if (is_prime(diff)) {cout << "Lucky Word" << endl;cout << diff << endl;} else {cout << "No Answer" << endl;cout << 0 << endl;}return 0;
}

关键点解析

  • 统计技巧cnt[c - 'a'] 是处理字母频率最简单高效的方法,利用了 ASCII 码的连续性。

  • minn 的初值:由于字符串长度不超过 100,将 minn 初始化为 100 或更大,可以确保在遍历过程中被正确更新。

  • 边界处理

    容易出错的地方是 \(0\)\(1\) 的处理。在 is_prime 函数中,必须明确排除 n < 2 的情况,因为在样例 2 中 \(1 - 1 = 0\),而 \(0\) 既不是质数也不是合数。

http://www.jsqmd.com/news/327294/

相关文章:

  • 基于微信小程序的中小学生个性化阅读平台的设计与实现_ixgl9940
  • 2026年行业盘点:揭秘TOP 10寿命测试设备加工厂的三大内功
  • 【前缀和】LCR_013_二维区域和检索-矩阵不可变
  • 基于Django的本地健康宝微信小程序系统的设计与实现_d794c578
  • 2026年行业盘点:揭秘国内可靠性测试设备厂商TOP 5
  • [特殊字符]_安全性能平衡术:如何在保证安全的前提下提升性能[20260131134218]
  • SpringBoot基于微信小程序的社区医疗服务管理小程序的设计与开发_3k9irntw
  • 例说FPGA:可直接用于工程项目的第一手经验【2.2】
  • AI产品经理必读:幻觉缓解的需求分析方法
  • 基于微信小程序的博物馆文创系统的设计与实现_7n764cb1
  • 巴特沃斯低通滤波器实现
  • 274852785
  • Spring Data 让后端数据同步更高效
  • 设计模式组合应用:智能硬件控制系统
  • 一个让你效率翻三倍的AI技术博客写作工作流
  • 互联网医院|互联网医院搭建|互联网医院定制
  • 一款开源 OSINT 图探索工具,旨在实现合乎道德的调查、透明化和验证。
  • 社会网络仿真软件:Pajek_(7).网络参数计算与分析
  • 社会网络仿真软件:Pajek_(7).网络可视化技术v1
  • 探索AI原生应用语义检索的创新模式
  • 2000-2024年地级市国内旅游收入、旅游外汇收入、旅游总收入数据
  • AI应用架构师的上下文工程:开启AI智能体高性能时代
  • AutoPentestX – Linux 自动化渗透测试和漏洞报告工具
  • 社会网络仿真软件:Pajek_(6).节点与边的编辑
  • 社会网络仿真软件:Pajek_(6).网络布局算法详解
  • 社会网络仿真软件:Pajek_(5).网络数据的预处理
  • 2026年AI超级员工评测:AI企业员工/AI超级员工/AI智能员工/AI数字员工机构口碑推荐!
  • 社会网络仿真软件:Pajek_(2).社会网络分析基础理论
  • 社会网络仿真软件:Pajek_(1).Pajek入门与基础操作
  • Python开发中高频报错场景全解析,附解决方案