摘要: 入门级状态压缩dp题。题意:从方格中取一些数,要求所取位置不相邻(包括对角线相邻),求最大的和。做法:把每行的状态压缩成二进制数,设状态dp[i][p]为第i行取集合p,容易得出dp[i][p] = max{dp[i-1][q] + cnt[i][p]| 集合p,q可以共存},cnt[i][p]为第i行为集合p时所取得数的和。View Code 1 /* 2 *Author: Zhaofa Fang 3 *Created time: 2013-03-31-10.33 4 *Language: C++ 5 */ 6 #include <cstdio> ... 阅读全文
posted @ 2013-03-31 11:57 發_ 阅读(603) 评论(0) 推荐(0) 编辑