pku 2392 space elevator 多重背包 dp 解题报告
来源:互联网 发布:dnd跑团规则数据 编辑:程序博客网 时间:2024/05/17 06:20
pku 2392 space elevator解题报告
算法:首先很容易想到先对3个测试数据的高度进行整体的排序(很显然,结果由最大的高度决定的);然后对每一组测试数据进行01背包dp.那么最优解就出来了。。
不过,我的算法要跑360多ms,我看到很多人都可以0ms,在这问问那些牛人了,怎么达到0ms?
AC代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define M 405
#define N 40005
#define max(a, b) (a > b ? a : b)
int n, dp[N];
typedef struct number
{
int a;
int h;
int c;
}Number;
Number data[M];
int cmp(const void *a, const void *b)
{
return (*(number *)a).a > (*(number *)b).a ? 1 : -1;
}
int main()
{
//freopen("elevator.11.in", "r", stdin);
int i, j, k, C, max;
scanf("%d", &n);
for (i = 0, max = 0; i < n; i++)
{
scanf("%d%d%d", &data[i].h, &data[i].a, &data[i].c);
if (max < data[i].a)
{
max = data[i].a;
}
}
int ans = 0;
qsort(data, n, sizeof(data[0]), cmp);
for (i = 0; i <= max; i++)
{
dp[i] = 0;
}
for (i = 0; i < n; i++)
{
C = data[i].a;
for (j = 0; j < data[i].c; j++)
{
for (k = C; k >= data[i].h; k--)
{
dp[k] = max(dp[k], dp[k - data[i].h] + data[i].h);
if (dp[k] > ans)
{
ans = dp[k];
}
}
}
}
printf("%d/n", ans);
return 0;
}
- pku 2392 space elevator 多重背包 dp 解题报告
- POJ 2392 Space Elevator [DP 多重背包]
- poj 2392 Space Elevator dp 多重背包
- poj 2392 Space Elevator(dp 排序+多重背包)
- Space Elevator (多重背包)
- pku 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(多重背包)
- 12.2 syslog日志
- 12.2.1 syslog简介
- ASP.NET文件上传下载
- oracle 表空间 表权限 用户
- Java Swing中键盘事件的处理
- pku 2392 space elevator 多重背包 dp 解题报告
- 12.2.2 syslog配置
- preg_replace(),ereg_replace() 使用正则表达式时特殊字符需要转义
- 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。文章通过一个具体的例子说明了这些嵌入式交叉编译开发工具的制作过程。 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来
- typedef VS#define
- oracle 字符集
- JAVA基础:解读内存优化编程
- 正则表达式
- 12.2.3 配置实例