poj 2392 Space Elevator
来源:互联网 发布:admaster数据分析 编辑:程序博客网 时间:2024/06/02 03:20
多重背包的处理,处理之前,需要根据题目的要求将各个block的容量从小到大进行排序,之后进行多重背包处理。
#include<iostream>#include<string.h>#include<math.h>#include<fstream>#include<algorithm>#include<stdio.h>#include<queue>#include<vector> #define MAXSIZE 100using namespace std;const int INF = 1<<30; #define max(a, b) ((a) > (b) ? (a) : (b))#define min(a, b) ((a) < (b) ? (a) : (b)) int K = 0;struct node{ int h, a, c;}; bool comp (const node a, const node b){ return a.a < b.a;}node blocks[410];int dp[40100];int ans = 0, rec = 0, maxn = 0;int main(){ //freopen("data_2392.txt","r",stdin); while(scanf("%d", &K) != EOF) { memset(dp, 0, sizeof(dp)); for (int i = 0; i < K; i++) { scanf("%d%d%d", &blocks[i].h, &blocks[i].a, &blocks[i].c); } sort (blocks, blocks + K, comp); dp[0] = 1; for (int i = 0; i < K; i++) { int t = 0; rec = maxn; for (int j = maxn; j >= t; j--) { if (dp[j]) { for (int k = 1; k <= blocks[i].c; k++) { int a = k * blocks[i].h + j; if (a > blocks[i].a) { break; } if (rec < a) { rec = a; } dp[a] = 1; } } } maxn = rec; } printf("%d\n", maxn); } return 0;}
0 0
- POJ 2392 Space Elevator
- poj 2392 Space Elevator
- POJ 2392 Space Elevator
- poj 2392 Space Elevator
- POJ 2392 Space Elevator
- poj 2392 Space Elevator
- POJ-2392-Space Elevator
- poj 2392 Space Elevator
- poj 2392--Space Elevator
- poj 2392 Space Elevator
- POJ 2392 Space Elevator
- POJ 2392 Space Elevator
- poj 2392 Space Elevator
- poj 2392 Space Elevator
- poj 2392 space elevator
- POJ 2392 Space Elevator
- POJ 2392 Space Elevator
- POJ 2392 Space Elevator
- leetCode 91.Decode Ways (解码方式) 解题思路和方法
- linux 进程等待 wait 、 waitpid
- [考试维护]时隔半年的考试系统
- 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
- 向PE中注入代码
- poj 2392 Space Elevator
- ThinkPHP配置文件的加载
- 广搜状态压缩 OpenJudge 百炼4105
- POJ 3071 Football(概率DP)
- 线程管理之线程创建和运行
- linux_c 网络开发日记(2)GDB简介
- moodle的一些api翻译~$page翻译
- java 常用 Java 静态代码分析工具的分析与比较
- !HDU 4193 循环序列前缀和非负-单调队列-(区间最值)