uva 1508(dp)
来源:互联网 发布:淘宝卖家怎么修改好评 编辑:程序博客网 时间:2024/05/28 16:21
题意:给出了n组数据,每组数据有5个数字,然后让挑出其中的k组,求k组中所有相应的数字最大的和。
题解:状态压缩,用00000表示未选出5个最大值,11111表示已经选出了5个最大值,那么情况就一共有32种,然后枚举每种情况更新f[i][j]数组,f[i][j]数组储存选i组情况是j的最大值之和是多少,结果就是f[k][31]。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 10005;int r[N][6], f[6][40], n, k;int main() {int t;scanf("%d", &t);while (t--) {scanf("%d%d", &n, &k);for (int i = 0; i < n; i++)for (int j = 0; j < 5; j++)scanf("%d", &r[i][j]);k = min(k, 5);memset(f, 0, sizeof(f));for (int i = 1; i <= k; i++)for (int j = 0; j < 32; j++)for (int sta = j; sta; sta = (sta - 1) & j) {int temp = j - sta;for (int l = 0; l < n; l++) {int sum = 0;for (int m = 0; m < 5; m++)if (sta & (1 << m))sum += r[l][m];f[i][j] = max(f[i][j], f[i - 1][temp] + sum);}}printf("%d\n", f[k][31]);}return 0;}
0 0
- uva 1508(dp)
- UVA DP 入门专题
- uva 1424 简单DP
- uva 10192 DP
- UVA dp题目汇总
- UVa 4256 - Salesmen dp
- UVa 10271 - Chopsticks dp
- UVA 1424 - Salesmen (dp)
- uva 672 Gangsters( dp )
- UVA 10271 Chopsticks(dp)
- uva 10271 Chopsticks(dp)
- UVA 11584 DP水题
- UVA 1424 DP水题
- UVA 10534 DP+LIS
- UVA 11552 DP水题
- UVA 1456 DP水题
- Uva 624 背包DP
- Uva 562 背包DP
- devstack安装错误一个“No module named MySQLdb”
- Akka学习笔记05--Actor的创建
- 10Gb Ethernet performance, tuning and functionality
- apache配置https协议访问
- Android事件总线 ( AndroidEventBus ) 框架学习
- uva 1508(dp)
- 公交余额查询(深圳通)
- ViewPage+frament不预加载下一个Frament数据解决办法
- PowerPC Figure – PPC入门与优化
- C语言中反斜杠"\"的意义和用法
- Docker周报2015年1月(上)
- Ejabberd Windows下安装+spark
- 专题第四题 poj 2109
- spring jar下载