状压DP
zwjdd_qwq
这个作者很懒,什么都没留下…
展开
-
洛谷P3959 NOIP2017D2T2宝藏
一个玄妙状压解析在代码里/* 感到恐怖,为什么会花式爆int */#include<iostream>#include<cstdlib>#include<algorithm>#include<cmath>#include<cstring>#include<cstdio>using namespace...原创 2019-07-30 20:30:01 · 113 阅读 · 0 评论 -
bzoj3900 交换茸角(状压DP)
神题一道,入手毫无思路还是头一次写这种找下界的状压DP,首先,n头路,我们的最大交换次数为n-1次因为把所有鹿的茸角打乱重新分配的话,只需要n-1次就可按照从小到大的顺序完成重排这也是差值最小的方法,但是如果这样都不合法的话,说明这个集合没法重排,输出-1好了,那么说说怎么优化对于每一个集合,只要他可以重排,我们就可以通过∣S∣|S|∣S∣-1的次数完成重排,那么,分成的集合越多,我们所...原创 2019-08-19 16:13:00 · 122 阅读 · 0 评论 -
bzoj2064 分裂 (上下界状压DP)
和bzoj3900有异曲同工之妙,然而,即便写过了3900,蒟蒻还是没想出正解这次的上界变成了n+m-2即是把所有的打乱,按照要求的m个一个一个拼起来,最后两块一定相等,所以-2。这样的前提是这两个集合的子块大小和相等,那么按照3900的套路,我们把集合尽量分成和相等的子集,分开处理,那么有几个集合,我们就可以减去几个2如何实现呢,我们使用lowbit,lowbit求的是最后一个1的位置那么...原创 2019-08-19 16:20:33 · 115 阅读 · 0 评论 -
洛谷P3112 [USACO14DEC]后卫马克Guard Mark
n<20一道比较基础的状压DP,虽然正解是贪心dp[S],表示选取的牛集合为S时最大载重量然后就很简单了#include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;const int maxn = (1<...原创 2019-09-09 23:11:09 · 105 阅读 · 0 评论 -
2019郑州课件·动态规划」JXOI2012 奇怪的道路
神仙状压题虽然想到了怎么压,但是完全不敢写…f[n][m][state]f[n][m][state]f[n][m][state]表示前n个点,匹配了m条边,前K个点的奇偶状态为statestatestate的方案数愉快的转移吧#include<iostream>#include<cstdio>#include<cstdlib>#include<...原创 2019-10-08 20:36:51 · 92 阅读 · 0 评论