|Tyvj|动态规划|P1015 公路乘车
2016-08-02 18:31
267 查看
http://tyvj.cn/p/1015
把旅客的总路程数n当做背包总量,10km每km的费用当做物品的价值,10km每km的km数是物品的重量,求最小价值。
例如5km费用是49,那么价值是49,重量是5.
然后按照完全背包做。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main ()
{
const int maxn = 100 + 5;
int a[15];
for (int i=1;i<=10;i++) scanf("%d", &a[i]);
int n;
scanf("%d", &n);
int f[maxn];
for (int i=1;i<=n;i++) f[i] = 30000;
f[0] = 0;
for (int i=1;i<=10;i++)
{
for (int j=0;j<=n;j++)
{
if (j>=i) f[j] = min(f[j], f[j-i]+a[i]);
}
}
printf("%d\n", f
);
return 0;
}
把旅客的总路程数n当做背包总量,10km每km的费用当做物品的价值,10km每km的km数是物品的重量,求最小价值。
例如5km费用是49,那么价值是49,重量是5.
然后按照完全背包做。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main ()
{
const int maxn = 100 + 5;
int a[15];
for (int i=1;i<=10;i++) scanf("%d", &a[i]);
int n;
scanf("%d", &n);
int f[maxn];
for (int i=1;i<=n;i++) f[i] = 30000;
f[0] = 0;
for (int i=1;i<=10;i++)
{
for (int j=0;j<=n;j++)
{
if (j>=i) f[j] = min(f[j], f[j-i]+a[i]);
}
}
printf("%d\n", f
);
return 0;
}
相关文章推荐
- Android Studio 出现 Gradle's dependency cache may be corrupt 错误分析
- loadView & ViewDidLoad
- facebook下载
- CSS 选择符
- linux启动和登陆时的配置文件
- 原子能工业
- Round robin
- SQL Server 中WITH (NOLOCK)浅析
- SQLServer性能优化
- android的Log输出
- 由request.getScheme()引发
- IOS之字典转模型
- 一道考察类加载机制的试题
- Java开发环境配置(JDK+Tomcat+MyEclipsed)
- CSS 样式表
- iOS CoreData入门
- linux 使用FIO测试磁盘iops
- python学习-str list
- 三栏式布局
- 手把手教你玩转CSS3 3D技术