Fork me on GitHub
摘要: 题意:给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 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 这题跟上两题也差不多。 把150以内的素数找出来,把素数的值看做硬币的面值,每个硬币的个数即ceil(150/prime[i]),因为再多也没用,最多组成n=150就行了,所以又回到了找硬币问题。用生成函数解之。 代码: #include <iostream> #include <cstdio> # 阅读全文
posted @ 2014-05-14 20:42 whatbeg 阅读(201) 评论(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 阅读(213) 评论(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 阅读(527) 评论(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 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 生成函数题。 题意:有币值1,2,5的硬币若干,问你最小的不能组成的币值为多少。 解法:写出生成函数: 然后求每项的系数即可。 因为三种硬币最多1000枚,1*1000+2*1000+5*1000=8000,那么多项式乘积的最高次数为8000 用c保存累计相乘各项的系数,tc保存c和当前项相乘的系数 阅读全文
posted @ 2014-05-14 19:45 whatbeg 阅读(255) 评论(0) 推荐(0) 编辑