摘要: 1. UVaLive 7143 Room Assignment 用dp[i][r]表示,前i个盒子已经放完了,手上还拿着r对同色球。 状态转移方程为:dp[i+1][r-a-b] = dp[i][r] * comb(r, a) * comb(r - a, b) * comb(sum - 2 * r, 阅读全文
posted @ 2018-04-12 23:55 尹吴潇 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题解: 水题 从高位向低位考虑 能0-->1则0 否则能1-->1则1 洛谷有毒啊。。。它评测机的输出和用洛谷IDE的都不一样。。。 明明是和答案一样的。。。 bzoj过了 代码: 阅读全文
posted @ 2018-04-12 20:59 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 老早就学过,但发现理解的不是很好 而且发现这个东西细节贼重要 1.缩点 缩点是对于有向图的强联通分量 即在同一个强联通分量中每个点都能到达另一个点 代码: http://www.cnblogs.com/yinwuxiao/p/8444680.html 2.2-sat以及输出方案 对于每个点拆成两个点 阅读全文
posted @ 2018-04-12 15:38 尹吴潇 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 介绍: 理解起来挺简单的一个东西 基于xor产生的东西 线性基实际上是一个集合 这个集合xor能得到的值和原集合相同 构造方法: 我们用f[i]记录最高位1在第i位的数 插入一个新元素时,我们从最高位开始扫描 如果f[i]是空的,那么f[i]=x 否则x^=f[i] 1.求xor最大值 这个只要贪心 阅读全文
posted @ 2018-04-12 15:17 尹吴潇 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题解: 由于之前没有对位运算之间的关系仔细研究过,今天仔细推了一波 首先 我们可以利用not和and推出所有位运算 A or B =not (notA and notB) A xor B= ~((notA and notB)or (A&B)) 而本题中定义的nand 我们会发现 x nand x=~ 阅读全文
posted @ 2018-04-12 15:10 尹吴潇 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题解: 烂大街的树形dp?? f[i][j]表示到i点,在i的子树中经过j个,且要返回i点的最小值 g[i][j]表示到i点,在i的子树中经过j个,且不用返回i点的最小值 然后转移做背包就可以了 (注意每个背包的上界为子树大小,这一步就从n^3 >n^2了) 和前几天看的九省联考d1t3的暴力有那么 阅读全文
posted @ 2018-04-12 00:09 尹吴潇 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题解: 区间dp 令f[i][j]表示搞好i-j的最小值 首先如果不用涂色 那么可以从f[i][k] f[k+1][j]转移 如果要涂色,那么就从f[i][k][a](表示i-k全为a)+f[k+1][j][a]+1来转移 为什么可以这样做呢 因为染色只会对这一段区间内产生影响,然后枚举区间相当于枚 阅读全文
posted @ 2018-04-12 00:06 尹吴潇 阅读(107) 评论(0) 推荐(0) 编辑