Music Problem

Music Problem

http://www.nowcoder.com/questionTerminal/7d1948ec26b5429c82f3a4cf48784612

抽屉原理的应用:一个由n个数组成的数列 一定能找出若干个连续的数使它们之和能被n整除。
所以 n >= 3600 时输出 YES
证明:n个数记为a[1],a[2],...a[n].设置一个数组sum,其存储信息为sum[i] = a[1] + a[2] + ...a[i];
情况一:存在一个k(1 <= k <= n),使得sum[k] % n == 0,那么就得证;
情况二:对于任意的k(1 <= k <= n),都有sum[k] % n != 0,那么余数的种类只有 1 到 n-1 总共 n-1 种情况,但是有 n 个 sum,由抽屉原理
可知必然有两个sum(假设为sum[i],sum[j],j > i)的余数相同。因此 (sum[j] - sum[i]) % n = (sum[j] % n - sum[i] % n) = 0;
所以 n >= 3600 时输出 YES
小于 3600 时搞个集合存一下就好了很简单的

全部评论
情况二:为什么存在2个数的模相同的话 就一定会存在数的和能被n整除。(sum[j] - sum[i]) % n = (sum[j] % n - sum[i] % n) = 0,对于这个,我想不通为什么一定能被n除
1 回复 分享
发布于 2020-04-16 22:04
nb
点赞 回复 分享
发布于 2020-07-22 09:58
太神了,数学佬
点赞 回复 分享
发布于 2022-01-29 15:40
%%%%%%Orzzz
点赞 回复 分享
发布于 2022-07-15 19:30
真厉害
点赞 回复 分享
发布于 05-09 19:29 河南

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
12 收藏 评论
分享
牛客网
牛客企业服务