SDAU练习三1018
2016-05-24 20:52
155 查看
题目大意:
有一个小猪存钱罐。空的存钱罐有一个质量,装满后有一个质量,首先给出存钱罐的两个质量
然后给出钱币的价值和质量。求在质量满足的情况下,可以得到的最小价值。
思路:
这是一个完全背包问题,只需要把循环的方式改过来就行了。 只要还有体积,那就往背包里面装入物品,这个和 0 1 区别就是这里。0 1 是在 体积剩余v 的时候还可不可以放入这件物品。
感想:
自己的代码过不了,,还是学习的不好。。
AC代码:
#include <stdio.h>
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
int v[10005];
int w[10005];
int dp[10005];
int main()
{
int n,i,j,k;
//freopen("r.txt","r",stdin);
int T,V,V1,V2;
cin>>T;
while(T--)
{
scanf("%d%d",&V1,&V2);
V=V2-V1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&v[i],&w[i]);
}
for(i=0;i<=V;i++)
dp[i]=666666;
dp[0]=0;
for(i=0;i<n;i++)
{
for(j=w[i];j<=V;j++)
{
dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
}
}
if(dp[V]==666666) cout<<"This is impossible."<<endl;
else
cout<<"The minimum amount of money in the piggy-bank is "<<dp[V]<<"."<<endl;
}
}
有一个小猪存钱罐。空的存钱罐有一个质量,装满后有一个质量,首先给出存钱罐的两个质量
然后给出钱币的价值和质量。求在质量满足的情况下,可以得到的最小价值。
思路:
这是一个完全背包问题,只需要把循环的方式改过来就行了。 只要还有体积,那就往背包里面装入物品,这个和 0 1 区别就是这里。0 1 是在 体积剩余v 的时候还可不可以放入这件物品。
感想:
自己的代码过不了,,还是学习的不好。。
AC代码:
#include <stdio.h>
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
int v[10005];
int w[10005];
int dp[10005];
int main()
{
int n,i,j,k;
//freopen("r.txt","r",stdin);
int T,V,V1,V2;
cin>>T;
while(T--)
{
scanf("%d%d",&V1,&V2);
V=V2-V1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&v[i],&w[i]);
}
for(i=0;i<=V;i++)
dp[i]=666666;
dp[0]=0;
for(i=0;i<n;i++)
{
for(j=w[i];j<=V;j++)
{
dp[j]=min(dp[j],dp[j-w[i]]+v[i]);
}
}
if(dp[V]==666666) cout<<"This is impossible."<<endl;
else
cout<<"The minimum amount of money in the piggy-bank is "<<dp[V]<<"."<<endl;
}
}
相关文章推荐
- 安卓手机摄像头变身网络摄像头IP webcame pro V1.10
- 【软件工程】 文档 - 银行业务管理 - 面向对象分析与设计
- POJ 2387Til the Cows Come Home
- android activity 属性记录
- 第6次c++作业
- 冲刺 02
- n^n的末位数字(快速幂)
- 《图解HTTP》学习笔记(四)-返回结果的HTTP状态码
- ubuntu下使用mutt+msmtp发送邮件
- 局域网中抓到NBNS数据包
- 毕设系列—客户端:Vitamio框架开发(1)初次安装及配置
- 第97课: 使用Spark Streaming+Spark SQL+mysql 实现在线动态计算出特定时间窗口下的不同种类商品中的热门商品排名(详细内幕版本)
- 用C++实现一个哈希桶(插入,删除,寻找)
- c++ 中的slipt实现
- 第一个Java应用
- node.js实现微博系统在express3.0+版本下的实现——所遇问题
- Kernel Methods (4) Kernel SVM
- C++第六次实验——项目5
- 剑指offer经典题(利用C++的特性)
- EasyUI ComboTree(树形下拉框) 简单实例