hihoCoder 1044 : 状态压缩·一 状压dp
来源:互联网 发布:买卖点炒股软件 编辑:程序博客网 时间:2024/05/22 19:24
思路:状态压缩,dp(i, j)表示考虑前i个数且[i-m+1, i]的选择情况为j。如果要选择当前这个数并且,数位1的个数不超过q,则dp[i+1][nex] = max(dp[i+1][nex], dp[i][j] + w[i+1]),如果不选择dp[i+1][j>>1] = max(dp[i+1][j>>1], dp[i][j]);
AC代码
#include <cstdio>#include <cmath>#include <cctype>#include <algorithm>#include <cstring>#include <utility>#include <string>#include <iostream>#include <map>#include <set>#include <vector>#include <queue>#include <stack>using namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000") #define eps 1e-10#define inf 0x3f3f3f3f#define PI pair<int, int> typedef long long LL;const int maxn = 1000 + 5;int dp[maxn][1<<10], w[maxn];int main() {int n, m, q;while(scanf("%d%d%d", &n, &m, &q) == 3){for(int i = 1; i <= n; ++i) {scanf("%d", &w[i]);}memset(dp, 0, sizeof(dp));int tol = 1<<m;for(int i = 0; i < n; ++i) {for(int j = 0; j < tol; ++j) {int nex = (j>>1)^(1<<(m-1));int cnt = 0;for(int k = 0; k < m; ++k) {if(nex & (1<<k)) ++cnt;}if(cnt <= q) dp[i+1][nex] = max(dp[i+1][nex], dp[i][j] + w[i+1]);dp[i+1][j>>1] = max(dp[i+1][j>>1], dp[i][j]);}}int ans = 0;for(int i = 0; i < tol; ++i) {ans = max(ans, dp[n][i]);}printf("%d\n", ans);}return 0;}
如有不当之处欢迎指出!
0 0
- hihoCoder 1044 状态压缩·一 (状压dp)
- hihocoder#1044 : 状态压缩·一(状压dp)
- hihoCoder 1044 : 状态压缩·一 状压dp
- hihocoder 1044 状态压缩·一 (状态dp)
- hihocoder 1044 状态压缩dp
- hihocoder #1044 状态压缩dp
- Hihocoder 1044 DP状态压缩
- hihoCoder 1044 状态压缩·一
- hihoCoder#1044 : 状态压缩·一
- hihoCoder 1044 状态压缩·一
- [HihoCoder]#1044 : 状态压缩·一
- hihocoder-#1044 : 状态压缩·一
- hihocoder 1044 : 状态压缩·一
- hihoCoder 1044 状态压缩一
- 【hihocoder】状态压缩dp
- hihocoder-1048 状态压缩·二(状压DP)
- hihocoder#1044状态压缩dp+滚动数组
- [hihocoder]:1048 状态压缩二(状压DP)
- Win10搭建wamp环境超详细教程(php7.1.4 + mysql5.7.18 + apache2.4)
- 闲扯工程师的版本管理概念
- pandas的基本用法(四)——处理缺失数据
- ionic2中ts调用js的方法
- 循环队列的基本实现
- hihoCoder 1044 : 状态压缩·一 状压dp
- 使用RecyclerView定制列表项
- 日本著名数学游戏专家中村义作教授提出这样一个问题:将2520个桔子分给六个儿子
- 面试题39_2:平衡二叉树
- 由于该设备有问题,Windows 已将其停止。 (代码 43)
- DTW(Dynamic Time Warping,动态时间归整)
- Node.js使用MongoDB3.4+Access control is not enabled for the database解决方案
- 如何写好C++类
- 2016江苏省CPC省赛 I