训练3 习题18
来源:互联网 发布:淘宝店铺的权重 编辑:程序博客网 时间:2024/04/30 11:52
题目:
310 11021 130 5010 11021 150 301 6210 320 4
The minimum amount of money in the piggy-bank is 60.The minimum amount of money in the piggy-bank is 100.This is impossible.
思路:背包问题, 关系公式: dp[j]=min(dp[j],dp[j-w[i]]+p[i])
#include<stdio.h>
#include<string.h>
#define N 505
#define inf -2000000000
inline int min (int a,int b)
{
return a>b?b:a;
}
int main()
{
int cas,ori,i,j,n,p[N],w[N],dp[10005],total;
scanf("%d",&cas);
while (cas--)
{
scanf("%d%d",&ori,&total);
total-=ori;
scanf("%d",&n);
for (i=1;i<=n;++i)
{
scanf("%d%d",&p[i],&w[i]);
}
for (i=1;i<=total;++i) dp[i]=inf;
dp[0]=0;
for (i=1;i<=n;++i)
{
for (j=w[i];j<=total;++j)
{
if (dp[j]<0) dp[j]=dp[j-w[i]]+p[i];
else
{
if (dp[j-w[i]]+p[i]>0) dp[j]=min(dp[j],dp[j-w[i]]+p[i]);
}
}
}
if (dp[total]>0) printf("The minimum amount of money in the piggy-bank is %d.\n",dp[total]);
else printf("This is impossible.\n");
}
return 0;
}
- 训练3 习题18
- 训练4 习题18
- 训练3 习题3
- 训练3 习题6
- 训练3 习题10
- 训练3 习题13
- 训练3 习题15
- 训练3 习题1
- 训练3 习题14
- 训练3 习题5
- 训练3 习题16
- 训练3 习题11
- 训练3 习题7
- 训练3 习题12
- 训练3 习题22
- 训练3 习题24
- 逻辑思维训练习题
- mysql复习 习题训练
- React Native之底层源码分析篇
- 统计字符串中重复的字符个数并输出
- Amabri 2.1安装HDP2.3.2 之 一、HDP介绍
- JMX之MBean介绍
- iOS 数据库篇1—SQLite简单介绍
- 训练3 习题18
- 详解OpenGL的坐标系、投影和几何变换-矩阵压栈思想/矩阵列式存储
- 第一天:Java web 的第一个例子 HelloWeb
- 啊哈哈哈,原来修改MySQL工作路径这么简单
- CityMaker学习教程07 示例代码的使用CSharp
- Android异步消息处理之AsyncTask
- 结构体(Struct)联合体(Union)枚举(enum)总结
- 【CodeForces】638A - Home Numbers
- Java中以类,对象的思想来实现超市管理系统