算法提高 贪吃的大嘴

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flx413/article/details/54880807


算法提高 贪吃的大嘴  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的.所以她希望你能设计一个程序帮她决定要吃哪些小蛋糕.
输入格式
  先输入一行包含2个整数m、n,表示大嘴需要吃美味度和为m的小蛋糕,而小蛋糕一共有n种,下面输入n行,每行2个整数,第一个表示该种小蛋糕的美味度,第二个表示蛋糕店中该种小蛋糕的总数
输出格式
  输出一行包含一个整数表示大嘴最少需要吃的小蛋糕数量,若大嘴无法通过吃小蛋糕达到m的美味度和,则输出"><“.
样例输入
10 2
4 1
2 10
样例输出
4
样例输入
10 2
4 1
7 3
样例输出
><
数据规模和约定
  m ≤ 20000,小蛋糕总数量≤50.

这道题的模型是一道经典的问题:最少硬币问题,而最少硬币问题就是背包问题,所以采用dp解决。

给两个最少硬币问题的参考链接,一个是用一维做的,一个是用二维:

http://blog.csdn.net/jiyanfeng1/article/details/39315643

http://www.cppblog.com/jince/archive/2010/09/17/126857.aspx


#include <iostream>
#define INF 0x3fffffff

using namespace std;

int t[51];
int coin[51];
int dp[20002] = {0};

int main(){
    //freopen( "123.txt", "r", stdin );
    int n;
    int m;
    int i, j, k;

    cin >> m >> n;

    //int *t = new int[n+1];
    //int *coin = new int[n+1];

    for( i = 1; i<= n; i++ ) {
        cin >> t[i] >> coin[i];
    }


    for( i = 1; i <= m; i++ ) {
        dp[i] = INF;
    }

    dp[0] = 0;
    for( i = 1; i <= n; i++ )
        for( j = 1; j <= coin[i]; j++ )
            for( k = m; k >= t[i]; k-- ) {
                dp[k] = min( dp[k - t[i]] + 1, dp[k] );
            }

   if( dp[m] == INF ) cout << "><" << endl;
   else cout << dp[m] << endl;

   return 0;
}


阅读更多
换一批

大嘴韩乔生经典之作

09-08

1.(网球,韩乔生)“你看她们的短裤也很有意思,网球运动员的短裤是特制的,里面可以放好几个球不掉出来。噢,她们穿的是裙子。”  rn2.(亚运会武术比赛,韩乔生)“中国运动员出场了,只见她一条枪舞得如蛟龙出水,虎虎生风。 不禁让我们想起了我国三国时代的赵云赵子龙,猛张飞,关羽关云长. .. 关羽使的是刀...”(眼睛离开手中的稿子瞥了一眼赛场)“噢,对不起,她使的是棍...”  rnrn3.(亚运会,韩乔生)“...以迅雷不及掩耳盗铃之势...”  rnrn4.(NBA总决赛,宋世雄)“...乔丹是芝加哥公牛男子篮球队的著名球星...”  rnrn5.(羽毛球,蔡猛)“...叶钊颖的父亲是原浙江省羽毛球队的守门员...”  rnrn6.(排球,韩乔生)“...二传手传了个地滚球..." rnrn足球(不加说明的条目,皆为韩乔生解说杰作):  rnrn[球迷总结出一条《韩乔生定律》: 韩乔生在解说比赛时,眼睛看着球员A,脑子里想起了球员B,嘴里说着球员C,实际指的是球员D。我听了以为是E。]  rnrn1. “...随着守门员一声哨响,比赛结束了...”  rnrn2. “...各位观众,中秋节刚过,我给大家拜个晚年...”  rnrn3. “现在由中国队守门员范志毅开任意球...”  rnrn4. “队员在平时的训练中一定要加强体能和对抗性训练,这样才能适应比赛中的激烈程度,否则的话,就会像不倒翁一样一撞就倒...”  rnrn5. “忽如一夜春风来,意甲流行三后卫...”  rnrn6. “国外的球员都非常敬业,比如马特乌斯,小孩出生3个月后就上场比赛了。” rnrn7. “范志毅前几天还在发高烧,高烧36度8;守门员区楚良身高1米82,体重28公斤。”  rnrn8. “中国队一脚射门,被区楚良奋勇扑出...”  rnrn9. “在上周刚举行了一场别开婚面的生礼。”  rnrn10.“可能有的观众刚刚打开电梯,我们再把比分...”  rnrn11.“巴乔在前有追兵,后有堵截的情况下带球冲入禁区...”  rnrn12.“水晶宫队已经赛了7场, 2胜2平4负... ”  rnrn13.“这球算进,裁判判进球无效...”  rnrn14.“已经有很多俱乐部表示要购买皮耶罗,拉齐奥出价3000万美元,曼联出价更高,2800万美元。”  rnrn15.“××队后卫严重犯规,裁判将前锋××罚下场。”  rnrn16.(德甲)“现在场上火药味很浓,两队队员在场上你争我抢,两队的教练也在场下争风吃醋。” rnrn17.“全兴队xx号发角球,由寰岛队xx号头球建功!”  rnrn18.“每一寸草皮都在进行激烈的争夺... ”  rnrn19.“佛罗伦萨队中场犯规,不,在禁区前罚球弧顶犯规,...”  rnrn20.“AC米兰就像一台计算机,内存挺大,大到奔腾II代,可是运行不快,可能是感染病毒, 看来主教练扎切罗尼需要一张杀毒的硬盘!!...”  rnrn21.“因为李金羽的身高比对方队员矮,因此在拚抢的时候他的肘部碰到了对方的脸上。”  rnrn22.“主教练将xx队的裁判罚出场外...”  rnrn23.“AC米兰队目前以1:3领先...”  rnrn24.“把球一脚射进了大门,...我们来看看慢动作,...哦,...是用头顶进的”  rnrn25.“只见防守队员一个队员两条腿,两个队员四条腿,三个队员....”  rnrn26.“守门员将球回传给门将...”  rnrn27. (甲A,孙正平)“八一和沈阳被誉为降级的热门球队!”  rnrn28.“18号传球,张效瑞跳起头球攻门,进球的是18号张效瑞。”  rnrn29.“解围的队员本来是要将球踢出底线的,可是没想到这球有很大的旋转,居然出了端线...” rnrn30.“XX球员30公里外一脚远射!” rnrn31.“……一个球迷跑到球场中央,踢翻了广告牌!??? ” rnrn32.“只见X队的前锋象两把菜刀…… ” rnrn33.“好!前锋一脚大力抽射,皮球应声进入网窝!比分还是1:1平,在球飞进球门的一瞬间,裁判员的哨声响了,这球算进,没有越位,比分变成了2:0,**队领先一分。 ” rnrn34.“这球进了!姜还是老的辣,**队10号小将再立新功。” rnrn45.“球被守门员的后腿挡了一下!!! ”

没有更多推荐了,返回首页