题目大意:让你在1~n中选择不多于k个数(n,k<=500),保证它们的乘积不能被平方数整除。求选择的方案数 因为质数的平方在500以内的只有8个,所以我们考虑状压 先找出在n以内所有平方数小于等于n的质数,然后我们把它们作为状压的状态 然后要对每个小于n数进行状压,如果它不能被它能被质数的平方整除 ...
分类:
其他好文 时间:
2018-09-24 23:23:35
阅读次数:
209
题目大意:甲和乙玩游戏,甲给出n(n<=50)个等长的字符串(len<=20),然后甲选出其中一个字符串,乙随机询问该字符串某一位的字符(不会重复询问一个位置),求乙能确定该串是哪个字符串的询问次数的期望值 这题不看题解好难想......(感谢zhx和zhx两位大佬的题解) len很小,考虑状压DP ...
分类:
其他好文 时间:
2018-09-24 23:19:20
阅读次数:
161
谈到GCC的黑科技,大家想到的一定是这句: 抑或是这句: 然而又有多少人知道 这群神奇的存在? 举个栗子:树状数组的核心思想就是一个叫做 的函数,它是这样写的: 什么,你说长?你嫌慢? 什么,你还是不想自己写?非得用内置函数? 那么恭喜你,这是你新的出路: cpp lowbit(x) == (1 仅 ...
分类:
其他好文 时间:
2018-09-23 13:40:20
阅读次数:
534
题意:给定一个n,k,l。 问有多少长度为n的序列满足选出一些数使得他们相加为k,数列中每个数都在1-l以内。 Solution 正解还是很妙的。 状压dp,设dp[i][j]表示长度为i的序列,能表示出集合为j的序列个数。 这个状态非常好,我们每局下一个可填的数,可选集合就变成了j|(1<<p-1 ...
分类:
移动开发 时间:
2018-09-20 18:04:43
阅读次数:
206
http://acm.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
分类:
其他好文 时间:
2018-09-17 23:05:24
阅读次数:
401
概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行。时间复杂度O(δX × δY),空间复杂度O(1)。 参考程序段 TopCoder SRM 667 Div.2 T2 解题思路 可能大家的 ...
分类:
其他好文 时间:
2018-09-13 12:07:32
阅读次数:
172
嘟嘟嘟 看这种图上摆放方案的题,以及 m <= 10,就一定能猜到是状压dp。 考虑当前第 i 行放一个3 * 2的方块,只会受到 i - 1行和 i - 2行的影响, 所以设:0:表示上两行都空闲。 1:i - 2行有块,i - 1行空闲。 2:i - 1行有块,因此 i - 2行的状态就不用管了 ...
分类:
其他好文 时间:
2018-09-11 21:29:41
阅读次数:
124
Travel PP loves travel. Her dream is to travel around country A which consists of N cities and M roads connecting them. PP has measured the money each ...
分类:
其他好文 时间:
2018-09-08 22:36:31
阅读次数:
163
设f[s]为已经 从上到下 叠了状态为s的牛的最大稳定度,转移的话枚举没有在集合里并且强壮度 =当前集合牛重量和的用min(f[s],当前放进去的牛还能承受多种)来更新,高度的话直接看是否有合法集合的高度达到要求即可 cpp include include using namespace std; ...
分类:
其他好文 时间:
2018-09-08 21:11:01
阅读次数:
131
显然是状压,显然不可能把所有格子压起来 仔细观察发现只有机关周围的四个格子有用以及起点,所以我们用spfa处理出这些格子两两之间的距离(注意细节……这里写挂了好几次),然后设f[s][i]为碰完的机关石状态为s,现在在有用格子的第i个的最小停下次数,转移按照套路即可 cpp include incl ...
分类:
其他好文 时间:
2018-09-08 19:57:51
阅读次数:
124