摘要:
官方题解:直接状压dp就行了,f[S]表示点集S的色数,枚举子集转移(子集是独立集)。这样是3^n的。 这样就可以过了……(独立集就是点互相没有连边) 学到了一个穷举子集的简便写法 for (int j=i; j; j=(j-1)&i) 1 #include<bits/stdc++.h> 2 3 u 阅读全文
posted @ 2017-02-14 22:23
acphile
阅读(200)
评论(0)
推荐(0)
摘要:
官方题解: 考虑去掉abs符号,发现只有相邻两个数的最高位被影响了才会影响abs的符号,所以可以按照最高位不一样的位置分类,之后考虑朴素枚举x从0到2^20,每次的复杂度是O(400),无法通过,考虑优化,第一种方法是用DFS来进行枚举,第二种则是加入记忆化 用dfs枚举简单一点 1 #includ 阅读全文
posted @ 2017-02-14 22:20
acphile
阅读(207)
评论(0)
推荐(0)
摘要:
数位dp f[i][st][w1][w2]表示到第i位,这一位a,b,c,d的数是否分别要小于ABCD的状态st,w1表示前一位a+c-b-d为几,w2表示a+d-b-c为几 由于前一位差大于等于2后,后面能始终确保a+c>b+d,所以w1, w2状态只有-1,0,1,2四种 注意这时如果按十进制诸 阅读全文
posted @ 2017-02-14 22:16
acphile
阅读(200)
评论(0)
推荐(0)
浙公网安备 33010602011771号