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, ...
随机推荐
- 轻量级的REST中间件
轻量级的REST中间件 纯净的REST中间件,绝对的轻量级,不需要安装任何三方控件 基于HTTPS.SYS和WEBSOCKET通信,支持海量并发 支持跨越DELPHI6~DELPHI10.2.2的开发 ...
- Eclipse 生成WebService客户端代码
1. 打开Eclipse,新建一个普通的Javaproject,然后在新建的项目上右键点击项目,New---->other---->Web Services -------->Web ...
- php根据word模板生成新的word文件
原文地址:http://www.niu12.com/article/16 php使用phpword将word内容变量替换 a.安装phpword composer require phpoffice/ ...
- Android源代码编译apk导入第三方包报错
报错内容例如以下: make: *** 没有规则能够创建"out/target/common/obj/APPS/ AndroidWFS_intermediates/classes-full- ...
- hdu1227 Fast Food
题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=1227 #include <iostream> #include <cstdio&g ...
- JMS之——ActiveMQ高可用+负载均衡集群
一.高可用集群 从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实现方式,其 ...
- Swing JTable 具体解释
改变列头 flightTable.getTableHeader().setDefaultRenderer(new TableCellRenderer() { public Component getT ...
- Android Studio 项目中集成百度地图SDK报Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()I错误
Android Studio 项目中集成百度地图SDK报以下错误: java.lang.UnsatisfiedLinkError: Native method not found: com.baidu ...
- PHP的抽象类、接口的区别和选择[转载]
区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承. 2.接口中不可以声明成员变量(包括类静态变量),但是可 ...
- SurfaceView绘制录音波形图
本文简单记录由View绘制转为SurfaceView绘制的波形图问题. 上代码: public class VoiceLineView extends View { private final int ...