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

题解:P14073 [GESP202509 五级] 数字选取

题解:P14073 [GESP202509 五级] 数字选取

题目传送门

题意

给定 \(1,2,3,4,\cdots,n\) 一共 \(n\) 个整数,从这些数中选取一些数字,使得选取的整数中任意两个不同的整数均互质。

数据规模与约定

对于所有测试点,保证 \(1 \le n \le 10^5\)

算法 tag

质数、筛法。

题解

  • 核心发现 \(1\):在这些数中,\(1\) 是必须选的,因为 \(1\) 与任何数的最大公因数都是 \(1\)
  • 核心发现 \(2\):任意两个不相等的质数一定互质,因为质数的因数只有 \(1\) 和它本身。
  • 核心发现 \(3\):用合数替换其质因数,无法增加答案数量,因为合数一定包含至少一个质因数,若选合数则必须放弃其质因数(因它们不互质),但 \(1\) 个合数最多只能替代 \(1\) 个质因数,无法增加总数量。例如:选 \(4\)(质因数 \(2\))只能替代质数 \(2\),数量不变;选 \(6\)(质因数 \(2\)\(3\))会替代 \(2\) 个质数,数量反而减少 —— 因此选质数比选合数更优。

综上,可以发现最优策略是 \(1\)\(n\) 中的质数个数 \(+1\)(因为还有个 \(1\) 也是合法的)。

可以使用埃筛筛出 \(1\)\(n\) 之间的质数,统计这些质数个数,再把答案 \(+1\)

Code

void Solve(void)
{int n;cin>>n;vector<bool> is_prime(n+1,true);is_prime[0]=is_prime[1]=false; for(int i=2;i*i<=n;i++) {if(is_prime[i]){for(int j=2;i*j<=n;j++){is_prime[i*j]=false;	}	} }int ans=0;for(auto b:is_prime){if(b)ans++;}cout<<ans+1<<endl;
}
http://www.gsyq.cn/news/14477.html

相关文章:

  • 张雪峰的事儿,大有文章
  • 技术内容思路构建Promot
  • # SICP学习笔记:计算机程序的构造与解释
  • 2025包装机厂家推荐榜单出炉:拉伸膜真空包装机,全自动真空包装机,滚动式真空包装机,食品真空包装机,气调包装机公司推荐!
  • 【半导体器件 | 笔记】金属氧化物半导体场效应晶体管(MOSFET)
  • 元人文AI场域:在有限与无限的纠缠中走向智慧文明
  • 【半导体器件 | 笔记】pn结二极管
  • Day2:Linux文件目录移到拷贝与vim编辑器使用指南
  • 【半导体物理 | 笔记】第八章 半导体表面与MIS结构
  • 【半导体物理 | 笔记】第四章 半导体的导电性
  • 【当前赛季】第36赛季:地狱魔王9月12日开启
  • 2025年9月 增值税进项税额,不可抵扣VS可抵扣全解析
  • 【Rust GUI开发入门】编写一个本地音乐播放器(14. 应用打包-制作安装程序) - Jordan
  • Visual Studio Code + Clangd 设置语法检查针对 C++的版本。
  • 示波器地、大地、电源地!地线着火?
  • 【Rust GUI开发入门】编写一个本地音乐播放器(13. 实现按键绑定) - Jordan
  • mem reduct 没有托盘图标
  • PEP8 规范
  • 【Rust GUI开发入门】编写一个本地音乐播放器(11. 支持动态明暗主题切换) - Jordan
  • US$54 AM29FXXX Adapter for CG Pro 9S12 Programmer
  • 2025CSP-S晋级和英才计划入围后:我走过了哪些路
  • 【J+S 二十连测】-- 第十二套爆炸记
  • 2025-2026-1 CS3311 软件工程 个人项目第一版已发布
  • 2025年10.1~10.6日信息竞赛计划安排表
  • 9. Spring AI 当中对应 MCP 的操作 - Rainbow
  • 随机采样研究随笔
  • springboot+vue心理健康服务小程序(源码+文档+调试+基础修改+答疑) - 详解
  • MacOS拉取git代码报.DS_Store 冲突修复
  • ARL灯塔搭建
  • 记 Charles 抓不到包 - Higurashi