NYOJ 417 死神来了 鸽巢原理
发布日期:2021-05-09 04:20:42 浏览次数:24 分类:博客文章

本文共 712 字,大约阅读时间需要 2 分钟。

死神来了

时间限制:
1000 ms  |  内存限制:
65535 KB
难度:
3
描述

有一天,王小子在遨游世界时,遇到了一场自然灾害。一个人孤独的在一个岛上,没有吃的没有喝的。在他饥寒交迫将要死亡时,死神来了。由于这个死神在成神之前是一个数学家,所以他有一个习惯,会和即死之人玩一个数学游戏,来决定是否将其灵魂带走。游戏规则是死神给王小子两个整数n(100<=n<=1000000),m(2<=m<=n),在1~n个数中,随机取m个数,问在这m个数中是否一定存在一个数是另一个数的倍数,是则回答“YES",否则”NO"。如果王小子回答正确,将有再活下去的机会。但是他很后悔以前没有好好学习数学,王小子知道你数学学得不错,请你救他一命。

输入
有多组测试数据,不多于10000;
每组有两个数n,m;
以文件结束符EOF为结束标志。
输出
输出"YES"或"NO"。
样例输入
100 80100 20
样例输出
YESNO
来源

思路:鸽巢原理

假如存在倍数关系,有倍数关系的当为一组。当n为偶数,最多有n/2组分组;假如是奇数,最多有n/2+1组分组,统一写为n/2+(n&1)组

将m个数分配,只有当m>n时,才会出现一个组内有两个数,且两数为倍数关系

代码:

#include
int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { n=n/2+(n&1); if(m>n)printf("YES\n"); else printf("NO\n"); } return 0;}

上一篇:蓝桥杯 密码脱落 LCS
下一篇:SPOJ SERGRID - Grid BFS

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月04日 19时38分56秒