[HihoCoder]#1044 : 状态压缩·一
2016-06-24 00:28
309 查看
华电北风吹
天津大学认知计算与应用重点实验室
2016-06-24
题目链接:
http://hihocoder.com/problemset/problem/1044
题目分析:
解题报告:
天津大学认知计算与应用重点实验室
2016-06-24
题目链接:
http://hihocoder.com/problemset/problem/1044
题目分析:
// problem1044.cpp : 定义控制台应用程序的入口点。 // #1044 : 状态压缩·一 // http://hihocoder.com/problemset/problem/1044 // 张正义 2016-04-18 #include "stdafx.h" #include <iostream> #include <algorithm> using namespace std; int dp[2][1<<10]; int data[1001]; bool state[1 << 10]; int main() { int N, M, Q; cin >> N >> M >> Q; for (int i = 1; i <= N; i++) cin >> data[i]; for (int i = 0; i < (1 << M); i++) { int bitcount = 0; int value = i; while (value) { bitcount += value & 1; value = value >> 1; } state[i] = (bitcount <= Q); } int flag = 0; for (int i = 1; i <= N; i++) { flag = 1 - flag; for (int j = 0; j < (1 << M); j ++) { if (state[j]) { int index1 = (j >> 1); int index2 = index1 + (1 << (M - 1)); if (j & 1) { dp[flag][j] = max(dp[1 - flag][index1], dp[1 - flag][index2]) + data[i]; } else { dp[flag][j] = max(dp[1 - flag][index1], dp[1 - flag][index2]); } } } } int result = 0; for (int j = 0; j < (1 << M); j++) result = max(result, dp[flag][j]); cout << result << endl; return 0; }
解题报告:
相关文章推荐
- HTCVive开发笔记01-激光定位器安装和搜集的资料
- selenium定位select下拉框元素
- 天才小毒妃 > 第900章 得来全不费工夫
- 完全立方数
- Android 省市县 三级联动(android-wheel的使用)
- OpenCV的waitkey不起作用
- [HihoCoder]#1041 : 国庆出游
- ES6新特性:使用export和import实现模块化
- android FragmentTabHost切换Fragment时避免UI重新加载
- 【51CTO学院三周年】随身携带的象牙塔
- UVa 1615 Highway (贪心,区间选点问题)
- 【模拟退火\爬山算法】[HYSBZ/BZOJ3680]吊打XXX(吊打GTY)
- [HihoCoder]#1040 : 矩形判断
- 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选
- 毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选
- 剑指offer---两个链表的第一个公共结点
- 从尾到头打印链表
- Windows下安装ZooKeeper
- thinkphp3.2【自动加载】
- (十)企业部分之cacti