随笔分类 - DP----状态压缩
摘要:"Codeforces Global Round 3" B Born This Way 首先二分从B到C坐的是哪个航班,然后枚举从A到B坐的是哪个航班即可。 C Crazy Diamond 首先考虑2到n 1中的每一个数,如果这个数应该放在左半边,那么可以考虑把这个数从当前位置移动到n,然后移动到应
阅读全文
摘要:"Codeforces Round 534 (Div. 1)" hahahaha我竟然没掉好高兴啊hahahaha A Grid game 我刚开始的时候想把上面两行放竖着的,下面两行放横着的,刚准备交,突然觉得没那么简单,如果一列的话也能消掉,怎么办啊~~我是智障~~!!! 然后才发现把下面的一行
阅读全文
摘要:"题目链接" std:meet in the middle 首先把所有的点分成两部分,设fi为前半部分在点集i中选出的最大独立集,g为在后半部分选。这个可以在O(2m/2)的时间复杂度里得到。 然后考虑把答案合起来。在f中是从i这个集合里面选出最大独立集,那么后半部分选的集合
阅读全文
摘要:A Integer Sequence Dividing 没什么意思,不过发现有一个人没开longlong也能过,仔细想了想确实是对的吧。 D Balanced Ternary String 本来想抢D的一血,但是调了半天才过,这时候已经有大约五六个人过了。。 那么题意很简单了,换成0的一定是越靠前越
阅读全文
摘要:前面简单一点的题直接过吧。 A 暴力DP B 怎么还是暴力DP C 还是暴力DP D 直接背包 E 这个背包不太一样了,这里有一个技巧,就是因为价值很小,所以直接对价值背包,求出来达到某一个权值最小的重量,然后找到满足限制的最大的价值即可。注意,如果能达到权值比这个还大的点,那么这个点很显然也是可以
阅读全文
摘要:最近做的题里面有这个东西,于是写一篇博客总结一下吧。 枚举子集 枚举子集就是状压的时候枚举其中的二进制位中的1的子集。直接暴力枚举二进制位时间复杂度是O(4n),但是我们可以发现,对于每一位有以下三种状态,在枚举的子集中为1,在子集中为0且在原状态中为1,以及在原状态中为0。这样,对于1到$2
阅读全文
摘要:Day1 T1 小凯的疑惑 T2 时间复杂度 cpp include include include include using namespace std; typedef long long ll; const int Maxn=1100; int t,n,s[Maxn],top,ans,err
阅读全文