摘要: 链接 思路 状压dp,dp[i][j]:表示到第i行,当前状态为s的最大值。预处理在每一行选的时候可能的状态,及这个状态的价值。 转移方程:dp[i][j] = max(dp[i][j],dp[i-1][k]+sum[i][j]) k与j不冲突。 代码 阅读全文
posted @ 2018-04-27 22:00 MJT12044 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 链接 思路 状压dp,dp[i][j]:表示到第i行,状态为j的方案数。预处理出每一行所有的可能的选法。 转移方程:dp[i][j] += d[i-1][k],j与k不冲突。 代码 http://poj.org/problem?id=3254 阅读全文
posted @ 2018-04-27 22:00 MJT12044 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 整理一些结论。 1、关于组合数 $C_n^m = \frac{n!}{m!(n-m)!}$ $C_n^m = C_n^{m-1} + C_{n-1}^{m-1}$ $C^0_n+C^1_n+C^2_n+...+C^{n-1}_n+C^n_n=2^n$ $C_n^m ≡ C_{n/p}^{m/p} \ 阅读全文
posted @ 2018-04-27 08:58 MJT12044 阅读(425) 评论(4) 推荐(1) 编辑
摘要: 链接 思路 二分+搜索+剪枝。 首先二分一个答案,表示最多可以切出x块。(一个结论:切出的一定是从较小的前x块。如果一个木材可以满足很多个需要的木材,那么切出最小的,就意味着以后再选时的机会更多。) 然后暴力搜索前x块分别由哪个木材切出。 剪枝1:如果所有提供的木材加起来也不能满足需要的木材,直接跳 阅读全文
posted @ 2018-04-27 08:17 MJT12044 阅读(104) 评论(0) 推荐(0) 编辑