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

P5535 【XR-3】小道消息

题目描述

小 X 想探究小道消息传播的速度有多快,于是他做了一个社会实验。

有 n 个人,其中第 i 个人的衣服上有一个数 i+1。小 X 发现了一个规律:当一个衣服上的数为 i 的人在某一天知道了一条信息,他会在第二天把这条信息告诉衣服上的数为 j 的人,其中 gcd(i,j)=1(即 i,j 的最大公约数为 1)。在第 0 天,小 X 把一条小道消息告诉了第 k 个人,小 X 想知道第几天时所有人都会知道这条小道消息。

可以证明,一定存在所有人都知道了这条小道消息的那一天。

提示:你可能需要用到的定理——伯特兰-切比雪夫定理。

输入格式

一行 2 个正整数 n,k。

数据范围:

  • 2 ≤ n ≤ 1e14。
  • 1 ≤ k ≤ n。

输出格式

一行一个正整数,表示答案。

输入输出样例

输入 #1

3 1

输出 #1

2

输入 #2

6 4

输出 #2

1


题解:

观察 数据范围 可知暴力摸你是完全不可能的

根据出题人的良心提示 :伯特兰-切比雪夫定理。--(对于所有大于3的整数n,存在一个质数p,符合 n < p < 2*n - 2 ;

对一个质数而言,若存在另一个数 与它不互质,那这个数一定是这个质数的倍数

即:假定这个质数为 x,则在区间[2 ,2*x - 1]中,除了它自己本身,所有的数与它互质

也就是 gcd(i ,x) = 1,  (2 <= i <= 2*x-1,i != x)

例如:质数43 在区间[2 ,2 * 43 - 1]中,除了43 所有数与它互质,质数7 在区间[2 ,2 * 7 - 1]中同样

情况一: 如果(k+1)为质数  则在区间[2 ,2*k ]中,全部与它互质,若n <= 2*k 那么第一天所有人都知道消息,输出"1";

情况二:如果(k+1)不为质数,那第一天它可以传给尽量大的接近 n 的质数,如此就变成了情况一,在情况一的基础上多加一天,即输出"2";


#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
#include<unordered_set>
#include<set>
#include<map>
#include<bitset>
#define inf 1000000000
#define int long long
#define endl '\n'
using namespace std;
typedef pair<int, int> pii;
const int N = 200086;int n, k;
int a[N];bool prim(int x) {if (x == 1)	return 0;if (x == 2)	return 1;if (x % 2 == 0)	return 0;for (int i = 3; i <= sqrt(x); i += 2) {if (x % i == 0)	return 0;}return 1;
}void solve() {cin >> n >> k;if (prim(k + 1) && 2 * k >= n)	cout << 1 << endl;else cout << 2 << endl;}signed main() {ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int T = 1;//cin >> T;while (T--) solve();return 0;
}

http://www.xdnf.cn/news/16086.html

相关文章:

  • 【MyBatis-Plus】核心开发指南:高效CRUD与进阶实践
  • 83、设置有人DTU设备USR-M100采集传感器数据,然后上传阿里云服务
  • 【音视频学习】五、深入解析视频技术中的像素格式:颜色空间、位深度、存储布局
  • CodeBuddy IDE实战:用AI全栈能力快速搭建课程表网页
  • 借助Aspose.HTML控件,使用 Python 编程将网页转换为 PDF
  • Object Sense (OSE):一款从编辑器脚本发展起来的编程语言
  • 优化:Toc小程序猜你喜欢功能
  • Java 堆(优先级队列)
  • AI 及开发领域动态与资源汇总(2025年7月23日)
  • 编程语言Java——核心技术篇(二)类的高级特性
  • 逆向入门(41)程序逆向篇-crackme
  • OceanBase数据库
  • 设备虚拟化技术
  • 从零开始学习Dify-Excel数据可视化(四)
  • Rocky9部署Zabbix7(小白的“升级打怪”成长之路)
  • 【bug】websocket协议不兼容导致的一个奇怪问题
  • (46)elasticsearch-华为云CCE无状态负载部署
  • #Linux内存管理# 在一个播放系统中同时打开几十个不同的高清视频文件,发现播放有些卡顿,打开视频文件是用mmap函数,请简单分析原因。
  • MCU芯片AS32S601在卫星光纤放大器(EDFA)中的应用探索
  • VPS海外部署Linux分布式计算任务调度-跨国资源整合方案
  • k8s:docker compose离线部署haborV2.13.1及采用外部的postgresql及redis数据库
  • uni-app动态获取屏幕边界到安全区域距离的完整教程
  • 在离线 Ubuntu 22.04机器上运行 ddkj_portainer-cn 镜像 其他相关操作也可以复刻 docker
  • Elasticsearch 学习笔记
  • 使用react编写一个简单的井字棋游戏
  • nodejs模块化
  • JS WebAPIs DOM节点概述
  • 前端_Javascript复习
  • C语言:第11天笔记
  • Python通关秘籍(四)数据结构——列表