摘要: 题目大意: 给你一个n*n的棋盘,让你往上面放国王,让它们不会互相攻击。 问有几种方案? 思路: 状压DP。 类似于BZOJ1725,不过现在没有要求哪里一定不能放,但是斜着也不能相邻了。 用f[i][j][k]表示第i行状态为j,总共放了k个国王。 转移的时候枚举行数i,当前行状态j,上一行状态l 阅读全文
posted @ 2017-10-27 19:10 skylee03 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 你有k(k<=16)个硬币,每个硬币都有自己的面值。 现在你要给n件商品付钱,每件商品也有自己的价格。 然而老板是个奸商,他绝对不会给你找钱。 你每次付钱只能用一个硬币,但是你可以一次性买很多商品。 问你最后最多还能留下多少钱。 思路: 状压DP。 f[i]表示状态为i时能买的商品数,i 阅读全文
posted @ 2017-10-27 15:17 skylee03 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一个m*n的01矩阵,请你搞一些破坏。 你可以选择搞坏任意一个数字为1的格子。 如果格子上的数字为0,它本来就是坏的,不用管它。 为了掩人耳目,你搞坏的格子不能直接相邻(即不能有公共边),不包括原来就坏掉的格子。 问有多少种搞破坏的方案。 思路: 状压DP。 f[i][j]表示第i行 阅读全文
posted @ 2017-10-27 13:12 skylee03 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一个函数f(n),满足3f(n)*f(2n+1)=f(2n)*(1+3f(n)),f(2n)<6f(n)。 我们用g(t)表示f(i)%k=t的i的个数,其中1<=i<=n。 问对于0<=x<k,所有的g(x)的异或和。 思路: 将函数用递推式表示为: f(2n)=3f(n) f(2n 阅读全文
posted @ 2017-10-27 12:05 skylee03 阅读(106) 评论(0) 推荐(0) 编辑