【Poj2392 Space Elevator】多重背包
来源:互联网 发布:mysql导入excel文件 编辑:程序博客网 时间:2024/05/16 23:58
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 400000 + 5;struct Block { int h, a, c;}B[400 + 5];bool cmp (Block a, Block b){ return a.a < b.a;}int sum[MAXN];bool f[MAXN]; //这个位置有没有被访问过int main(){ int K; scanf("%d", &K); for (int i = 0; i < K; i++) { scanf("%d %d %d", &B[i].h, &B[i].a, &B[i].c); } sort(B, B + K, cmp); memset(f, false, sizeof(f)); f[0] = true; int ans = 0; for (int i = 0; i < K; i++) { memset(sum, 0, sizeof(sum)); for (int j = B[i].h; j <= B[i].a; j++) { if (f[j] == false && f[j - B[i].h] != false && sum[j - B[i].h] < B[i].c) { f[j] = true; sum[j] = sum[j - B[i].h] + 1;//统计这种石块放置的个数 if (ans < j) ans = j; } } } printf("%d\n", ans); return 0;}
代码是从这里抄的,稍微改了一点。
首先排序。因为要排序,所以把石块用一个结构体存了。
输出的最大高度也不会超过石块的可以放置的最大的高度的MAX值,所以j中必然会有答案。
我。。。这个是多重背包。。。但是它的实现让我比较懵逼,和我看的不是一样的啊。如果是我自己写还是写不出来qnq
0 0
- poj2392(Space Elevator + 多重背包)
- POJ2392:Space Elevator(多重背包)
- poj2392 Space Elevator(多重背包)
- 【Poj2392 Space Elevator】多重背包
- POJ2392-Space Elevator-多重背包
- poj2392 Space Elevator(多重背包)
- POJ2392 Space Elevator (多重背包)
- poj2392 Space Elevator 多重背包转换为完全背包
- Space Elevator (多重背包)
- Space Elevator(多重背包)
- POJ_2392 Space Elevator(多重背包)
- poj2392 Space Elevator
- poj2392 - Space Elevator
- 【POJ2392】Space Elevator
- POJ2392:Space Elevator
- poj2392 Space Elevator
- [POJ2392]Space Elevator
- POJ2392-Space Elevator
- Nmap命令的29个实用范例
- Filter转发报错
- 语音消息以及未读提醒连续播放
- Hadoop架构介绍——Hadoop的三种运行模式
- 十大编程算法
- 【Poj2392 Space Elevator】多重背包
- c#调用C++写的DLL,传递二维指针参数
- Method 'NewStringUTF' could not be resolved
- scala的柯里化
- PB获取应用程序路径以及exe名
- Android webView.loadData 乱码解决
- eclipse代码中有错误,项目中却不显示红叉解决办法
- luogu3384 树链剖分
- mkfs.vfat: Device partition expected, not making filesystem on entire device '/dev/sdb'