poj 2392 Space Elevator
来源:互联网 发布:windows共享文件夹密码 编辑:程序博客网 时间:2024/05/19 06:46
Space Elevator
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 8306 Accepted: 3932
Description
The cows are going to space! They plan to achieve orbit by building a sort of space elevator: a giant tower of blocks. They have K (1 <= K <= 400) different types of blocks with which to build the tower. Each block of type i has height h_i (1 <= h_i <= 100) and is available in quantity c_i (1 <= c_i <= 10). Due to possible damage caused by cosmic rays, no part of a block of type i can exceed a maximum altitude a_i (1 <= a_i <= 40000).
Help the cows build the tallest space elevator possible by stacking blocks on top of each other according to the rules.
Help the cows build the tallest space elevator possible by stacking blocks on top of each other according to the rules.
Input
* Line 1: A single integer, K
* Lines 2..K+1: Each line contains three space-separated integers: h_i, a_i, and c_i. Line i+1 describes block type i.
* Lines 2..K+1: Each line contains three space-separated integers: h_i, a_i, and c_i. Line i+1 describes block type i.
Output
* Line 1: A single integer H, the maximum height of a tower that can be built
Sample Input
37 40 35 23 82 52 6
Sample Output
48
Hint
OUTPUT DETAILS:
From the bottom: 3 blocks of type 2, below 3 of type 1, below 6 of type 3. Stacking 4 blocks of type 2 and 3 of type 1 is not legal, since the top of the last type 1 block would exceed height 40.
From the bottom: 3 blocks of type 2, below 3 of type 1, below 6 of type 3. Stacking 4 blocks of type 2 and 3 of type 1 is not legal, since the top of the last type 1 block would exceed height 40.
Source
USACO 2005 March Gold
多重背包,先按高度从小到大排序
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;bool dp[40005];struct node{ int h,a,c;}t[405];int cmp(node a,node b){ return a.a<b.a;}int main(){ int n; while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++)scanf("%d%d%d",&t[i].h,&t[i].a,&t[i].c); memset(dp,0,sizeof(dp)); dp[0]=1; sort(t,t+n,cmp); for(int i=0;i<n;i++){ for(int j=0;j<t[i].c;j++){ for(int k=t[i].a;k>=t[i].h;k--) dp[k]|=dp[k-t[i].h]; } } for(int i=t[n-1].a;i>=0;i--){ if(dp[i]){ printf("%d\n",i); break; } } } 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
- CentOS6.4下Mysql数据库的安装与配置
- 便不由自主的朝她所在的方向走去,
- 克隆管理员代码
- Myeclipse项目名为什么会带'>'和IP
- 常用的可变字符串处理实例方法 API文档 NSMutableString
- poj 2392 Space Elevator
- linux 6.5 安装oracle 11g 系统缺包的检查
- php curl判断一个远程文件在不在
- 杭电1878————欧拉回路基础题目
- 一个测试脚本,测试lvm
- Core Location和MapKit的一些简单使用
- cocos2dx3.2 异步加载和动态加载
- angular-phonecat 项目无法启动
- poppler 之介绍文章