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

题解:[GESP202509 五级] T1

题目传送门 目前还不知道,题目还未加入洛谷题库

题目概述

T1:
给定一个数 \(n(n \le 10^5)\),你需要选出若干个在1到 \(n\) 范围内的数,使其中任意两个数互质(即两数最大公因数为1),问最多你能选几个数?

解题思路

我们可以先使用贪心的思路去思考

假设 \(n=10\),我们从1开始选数

  • 首先,选上1,因为所有整数和1都互质,所以一定要选择
  • 接着,考虑2,发现可以选择,那么就选择
  • 接着3,也可以选择,选择
  • 接着4,发现它和2不互质,不选
  • 5,选
  • 6和2/3不互质
  • 7,选
  • 8,和2不互质
  • 9,和3不互质
  • 10,和2/5不互质

我们发现,我么选出来的数是 \({1,2,3,5,7}\),这已经是数量最多的了

这时候我们发现规律,最优情况下,我们选出来的数都是 1 或者 \(n\) 以内的素数(即只有合数不选)

所以思路就很明确了,把 1 和所有素数选择,那么答案就是 \(n\) 以内的素数\(+1\)

所以我们可以把 \([1,n]\) 区间的素数筛出来,用素数的个数 \(+1\) 即可

Code

我的代码选择使用欧拉筛来筛素数

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
bool vis[100005]; // 标记是否是素数
int a[100005]; // 存放素数
int cnt; // 素数个数
signed main()
{cin >> n; // 输入nfor (int i = 2; i <= n; i++){if (!vis[i]){// 如果i是素数,则将其存入数组a中cnt++; // 素数个数加1a[cnt] = i; // 存入数组a中}for (int j = 1; j <= cnt && i * a[j] <= n /*防止溢出*/; j++){// 枚举数组a中的素数,如果i能整除a[j],则说明i不是素数,跳出循环vis[i * a[j]] = true; // 将i*a[j]标记为非素数if (i % a[j] == 0) // 如果i能整除a[j],则说明i不是素数,跳出循环{break;}}}cout << cnt + 1 << endl; // 输出素数个数+1(因为1不是合数)return 0;
}
http://www.hskmm.com/?act=detail&tid=19871

相关文章:

  • 实验一
  • 2025无人机在低空应急救援中的应用实践
  • OI 模板合集
  • 实用指南:【分布式】分布式事务方案:两阶段、TCC、SEATA
  • Storm-0501威胁组织利用云技术实施勒索攻击的技术分析
  • 模型插入 NV12 预处理节点精度问题排查流程
  • 【ARM Cache与 MMU 系列文章 7 – ARMv8v9 MMU 页表配置 01 】
  • 完整教程:【开题答辩过程】以《SpringMVC在筑原平面设计定制管理信息系统的应用与实践》为例,不会开题答辩的可以进来看看
  • 接雨水
  • 非线性规划、最优控制与多目标优化
  • 记录,结构,枚举,ref,in和out 元组
  • Gitee企业版MCP Server:开启AI驱动的企业研发新时代
  • Flutter - dart 语言从入门到精通 - 教程
  • 哈夫曼编码例题
  • Deepoc具身智能模型:为传统电厂巡检机器人注入“灵魂”与“智慧” - 实践
  • Win11共享打印0x0000bc4,三步解决共享难题
  • kafka-日志收集高效的平台部署任务
  • python第三天
  • iOS Xcode16 中删除描述文件 Provisioning Profiles
  • git仓库管理memo
  • 全国主要城市温度舒适度榜:谁在天堂,谁在蒸笼
  • 电桥采集模块 24位ADC+128倍可调增益 高精度测量支持多接口输出
  • ubuntu 系统启动服务及服务依赖
  • Jira停售Data Center尘埃落定!中国企业迁移需落实的6大关键项目管理工具清单
  • 【Cursor/Vscode】SSH免密登录 - 教程
  • python 超长代码行如何换行,符合PEP 8规范?
  • Gitee崛起:中国开发者迎来本土化研发平台新纪元
  • 关键领域软件研发知识管理的范式革命:从静态文档到智能图谱的跃迁
  • 【IEEE出版、曾获中国科协认证】第六届机械工程、智能制造与自动化技术国际学术会议 (MEMAT 2025)
  • 时间同步NTP服务