关闭

sdau三 1018

190人阅读 评论(0) 收藏 举报

问题:

有一扑满,有多种硬币,每种硬币价值重量不同,每种硬币数量无限。要把扑满装满,求扑满中的最少能装多少钱。

input:

输入n,后有n组事例,输入空扑满和装满钱的扑满的重量,输入m,后有m组硬币,各有价值v与重量w

out:

输出最小价值或输出不可能(若装不满)

simple input:

3 10 110 2 1 1 30 50 10 110 2 1 1 50 30 1 6 2 10 3 20 4
simple output:
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数组初始化为正无穷,然后套完全背包模板就好

代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int p,w,dp[10001];
const int INF=100000000000;
int main(){
    //freopen("s.txt","r",stdin);
    int t;
    cin>>t;
    while(t--){
        int s1,s2,s,n,i,j;
        cin>>s1>>s2;
        s=s2-s1;
        cin>>n;
        for(i=1;i<=s;i++)
            dp[i]=INF;
        for(i=1;i<=n;i++){
            cin>>p>>w;
            for(j=w;j<=s;j++)
                dp[j]=min(dp[j],dp[j-w]+p);
        }
        if(dp[s]!=INF)
            cout<<"The minimum amount of money in the piggy-bank is "<<dp[s]<<"."<<endl;
        else
            cout<<"This is impossible."<<endl;
    }
    return 0;
}


0
0
查看评论

SDAU练习三1018

题目大意: 有一个小猪存钱罐。空的存钱罐有一个质量,装满后有一个质量,首先给出存钱罐的两个质量 然后给出钱币的价值和质量。求在质量满足的情况下,可以得到的最小价值。 思路: 这是一个完全背包问题,只需要把循环的方式改过来就行了。  只要还有体积,那就往背包里面装入物品,这个...
  • qq_34276853
  • qq_34276853
  • 2016-05-24 20:52
  • 104

SDAU课程练习2 1018

Tempter of the Bone Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 17...
  • qq_33402621
  • qq_33402621
  • 2016-04-02 16:55
  • 114

SDAU 课程练习3 1018

Problem R Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 10  &#...
  • qq_33402621
  • qq_33402621
  • 2016-04-30 11:39
  • 147

mysql 无法读表:ERROR 1018

参考文章: http://www.linuxidc.com/Linux/2013-12/93912.htm http://wangminglian1985.blog.163.com/blog/static/1342994201391255222426/ 访问数据库,莫名其妙的报1018错误...
  • w410589502
  • w410589502
  • 2016-12-30 18:14
  • 794

PAT(乙级)1018

1018. 锤子剪刀布 (20) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入格式: 输入第1行给出正整数N( 输出格式: 输出第1...
  • zy010101
  • zy010101
  • 2017-07-07 16:24
  • 100

51Nod-1018 排序【排序】

1018 排序 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出N个整数,对着N个整数进行排序 Input 第1行:整数的数量N(1 <= N <= 50000) 第2 - N...
  • tigerisland45
  • tigerisland45
  • 2017-05-31 06:22
  • 455

ACM3-1018

Problem R Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 60   ...
  • a14772586233
  • a14772586233
  • 2016-05-28 10:20
  • 87

PAT 1018

PAT 1018 题目其实很简单,只要用DFS就可以了,但是我的程序出来5,7两个测试出错,大神看看哪里的问题。 #include #define ABS(a) (a>=0?a:-a) int cmax,nstats,sp,m,min,mintime; int map[510][510]...
  • JasonChuanChang
  • JasonChuanChang
  • 2014-03-03 20:27
  • 694

POJ1018Communication System题解动态规划DP

Communication SystemTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 12607 Accepted: 4377<br />DescriptionWe have received an...
  • power721
  • power721
  • 2010-08-06 16:15
  • 905

sdau三 1007

问题: 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能...
  • nanyanjimozhao
  • nanyanjimozhao
  • 2016-05-30 09:41
  • 173
    个人资料
    • 访问:6418次
    • 积分:411
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条