随笔分类 -  组合数学

摘要:这个题跟http://poj.org/problem?id=2356;是一样,这里就不解释了http://www.cnblogs.com/bo-tao/archive/2012/07/27/2611306.htmlView Code #include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>#include<queue>#include<set>#include<map>#include& 阅读全文
posted @ 2012-07-27 11:34 wutaoKeen 阅读(103) 评论(0) 推荐(0)
摘要:这是一道简单的对鸽笼原理的运用;题意:给出N个数,从中选出若干个数使得它们的和为N的倍数。有一种简单的方法如下:虽然题目没限制怎样选,但是我们可以证明:存在若干个这样的连续数,它们的和是N的倍数。为此,我们可以考察和Sk =a1+a2+...+ak.如果存在一个Sk是N的倍数,那么把前K个数选出来就可以了。否则所有N歌Sk除以N的余数只有1,2,3,4...N-1;这n-1种可能(n-1个盒子),由基本原理 知,必然有两个不同的和Si和Sj(i<j)除以N的余数相同,所以Sj -Si = ai+1 + .... aj 是N的倍数;View Code #include<iostrea 阅读全文
posted @ 2012-07-27 10:27 wutaoKeen 阅读(258) 评论(0) 推荐(0)
摘要:该题WA了上午,呜呜.......最后,幸亏lvsi的提醒,把getsum函数改为long long 型就过了,该题与poj 2992 Divisors是同一类型这里我们就不累叙了,这里要注意的就是2与5的对数,我们就把2与5成对处理掉,因为2*5=10,我们就可以忽略2与5成对的情况; 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 #include<string.h> 5 int hash[500024]={0}; 6 int prime[100000]; 7 int 阅读全文
posted @ 2011-11-18 15:38 wutaoKeen 阅读(301) 评论(0) 推荐(0)