UVA812-Trade on Verweggistan(暴力)
题意:商人要去买pruls这样的东西。然后它的价值是一个序列,买的时候要严格从头到尾取,比方你要买第5个,那么前4个也要一起买下来,求商人能获得的最大的利润。
思路:最大利润肯定就是每一个序列的最大值的和。对于输出的话,我们记录下每行能取得最大值的位置,然后回溯去计算全部可能值,然后输出前10个最小的值。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm> using namespace std; const int INF = 0x3f3f3f3f;
const int MAXN = 55; int arr[MAXN][MAXN], sum[MAXN][MAXN];
int num[MAXN], x[MAXN * MAXN + 5];
int w, b, ans, n; vector<int> v[MAXN]; void dfs(int cnt, int s) {
if (cnt == w) {
x[s] = 1;
return;
}
int l = v[cnt].size();
for (int i = 0; i < l; i++)
dfs(cnt + 1, s + v[cnt][i]);
} void outPut() {
int c = 10;
for (int i = 0; i < MAXN * MAXN; i++) {
if (c == 0)
break;
if (x[i]) {
printf(" %d", i);
c--;
}
}
printf("\n");
} int main() {
int t = 0;
while (scanf("%d", &w) && w) {
memset(sum, 0, sizeof(sum));
memset(num, 0, sizeof(num));
for (int i = 0; i < w; i++) {
scanf("%d", &b);
num[i] = b;
for (int j = 0; j < b; j++) {
scanf("%d", &arr[i][j]);
arr[i][j] = 10 - arr[i][j];
sum[i][j] = sum[i][j - 1] + arr[i][j];
}
} ans = 0;
for (int i = 0; i < w; i++) {
int Max = 0;
v[i].clear();
v[i].push_back(0);
for (int j = 0; j < num[i]; j++) {
if (sum[i][j] > Max) {
v[i].clear();
v[i].push_back(j + 1);
Max = sum[i][j];
}
else if (sum[i][j] == Max)
v[i].push_back(j + 1);
}
ans += Max;
} memset(x, 0, sizeof(x));
dfs(0, 0); if (t)
printf("\n");
printf("Workyards %d\n", ++t);
printf("Maximum profit is %d.\n", ans);
printf("Number of pruls to buy:");
outPut();
}
return 0;
}
UVA812-Trade on Verweggistan(暴力)的更多相关文章
- uva 812 Trade on Verweggistan
题意: 给w个货架, 每个货架上有bi个货物, 每次只能拿最上面的货物, 每个货物有个价值, 所有货物的售价均为10. 问:能获得的最大利润, 以及能获得这个利润需要多少个货物. (有多种组合时只需输 ...
- 别人整理的DP大全(转)
动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...
- dp题目列表
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- poj 动态规划题目列表及总结
此文转载别人,希望自己能够做完这些题目! 1.POJ动态规划题目列表 容易:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 11 ...
- [转] POJ DP问题
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- poj动态规划列表
[1]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 13 ...
- POJ动态规划题目列表
列表一:经典题目题号:容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 13 ...
- POJ 动态规划题目列表
]POJ 动态规划题目列表 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1208, 1276, 1322 ...
- poj 动态规划的主题列表和总结
此文转载别人,希望自己可以做完这些题目. 1.POJ动态规划题目列表 easy:1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, ...
随机推荐
- 普通项目转换成maven项目
参看文档:http://czj4451.iteye.com/blog/1983889 maven仓库:http://mvnrepository.com/ 基本步骤如下: Configue--& ...
- jquery ajax 中不能给变量赋值的原因及解决办法
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去, ...
- Perforce查看workspace sync到的changlist
一 查看workspace sync到的changelist perforce的workspace其实是一些特定版本的文件的 结合,相比只将workspace对应到某个特定的changelist,此方 ...
- Hadoop数据目录迁移
Hadoop数据目录迁移 @(Hadoop) 随着数据的不断导入和增大,原本集群部署的目录磁盘空间不足了,所以要把hadoop存储数据的位置迁移到另外一个巨大的磁盘上,另外的一个用意是将数据和程序分离 ...
- (转)Scala的“=>”符号简介
Scala中的=>符号可以看做是创建函数实例的语法糖.例如:A => T,A,B => T表示一个函数的输入参数类型是“A”,“A,B”,返回值类型是T.请看下面这个实例: scal ...
- OpenGL(八)使用 subroutine 切换可编程管线
Subroutine 功能是在OpenGL 4.0 版本号里才添加的.因此对于各种Android手机.这个功能基本跪了.假设你发现你的程序报错:ARB_shader_subroutine.那就说明当前 ...
- dubbo-monitor安装监控中心,管理控制台安装
一.安装监控中心 1.创建安装目录 2.解压 上传文件解压文件 解压 3.修改配置文件 4.启动 如果一直出现点.只需要加大内存即可,内存至少大于1024,然后reboot重启 5.测试 二.安装管理 ...
- Android笔记——UI开发
概述: 布局(Layout)的概念是针对Activity的,Activity就是布满整个Android设备的窗体或者悬浮于其它窗体上的交互界面.在一个应用程序中通常由多个Activity构成.每一个须 ...
- LinkedIn架构这十年
原文: A Brief History of Scaling LinkedIn 2003年是LinkedIn元年,公司成立的目标是连接你的个人人脉以获得更好的的工作机会.上线第一周才有2700个会员注 ...
- 今天科普一下 iOS马甲包审核以及常见审核问题
一.什么是马甲包 马甲包是利用App store 规则漏洞,通过技术手段,多次上架同一款产品的方法.马甲包和主产品包拥有同样的内容和功能,除了icon和应用名称不能完全一致,其他基本一致. 二. ...