摘要:        
题意:给n种房子,每种房子有一个值val和个数cnt,现在要把这些房子分成两部分,争取两部分总值相等,如果不能相等,让A>B,且A-B最小。 解法:先跑一次生成函数,c[n]表示组成总值为n的方法种数,然后从Total/2~0枚举B的总值,如果c[i]不为0,说明可以达到 i 这个状态,说明这就是B    阅读全文
posted @ 2014-05-14 21:47
whatbeg
阅读(224)
评论(0)
推荐(0)
        
            
        
        
摘要:        
这题跟上两题也差不多。 把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题。用生成函数解之。 代码: #include <iostream> #include <cstdio> #    阅读全文
posted @ 2014-05-14 20:42
whatbeg
阅读(205)
评论(0)
推荐(0)
        
            
        
        
摘要:        
跟上题是一个思路:http://www.cnblogs.com/whatbeg/p/3728545.html 只不过是上一题的扩展。 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #incl    阅读全文
posted @ 2014-05-14 20:09
whatbeg
阅读(222)
评论(0)
推荐(0)
        
            
        
        
摘要:        
A.解救小QBFS。每次到达一个状态时看是否是在传送阵的一点上,是则传送到另一点即可。代码:#include #include #include #include #include #include using namespace std;#define NA 100007char mp[52][5...    阅读全文
posted @ 2014-05-14 19:52
whatbeg
阅读(537)
评论(0)
推荐(0)
        
            
        
        
摘要:        
B.Cuckoo for Hashing模拟题。代码:#include #include #include #include #include #include #include using namespace std;#define N 50007int a[1004],b[1004];int m...    阅读全文
posted @ 2014-05-14 19:50
whatbeg
阅读(233)
评论(0)
推荐(0)
        
            
        
        
摘要:        
生成函数题。 题意:有币值1,2,5的硬币若干,问你最小的不能组成的币值为多少。 解法:写出生成函数: 然后求每项的系数即可。 因为三种硬币最多1000枚,1*1000+2*1000+5*1000=8000,那么多项式乘积的最高次数为8000 用c保存累计相乘各项的系数,tc保存c和当前项相乘的系数    阅读全文
posted @ 2014-05-14 19:45
whatbeg
阅读(265)
评论(0)
推荐(0)
        


 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号