• HDU 1248 寒冰王座(完全背包问题另类解法)


    寒冰王座

    Problem Description

    不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.

    死亡骑士:“我要买道具!”

    地精商人:“我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个.”

    死亡骑士:“好的,给我一个血瓶.”

    说完他掏出那张N元的大钞递给地精商人.

    地精商人:“我忘了提醒你了,我们这里没有找客人钱的习惯的,多的钱我们都当小费收了的,嘿嘿.”

    死亡骑士:"…"

    死亡骑士想,与其把钱当小费送个他还不如自己多买一点道具,反正以后都要买的,早点买了放在家里也好,但是要尽量少让他赚小费.

    现在死亡骑士希望你能帮他计算一下,最少他要给地精商人多少小费.

    Input

    输入数据的第一行是一个整数T(1<=T<=100),代表测试数据的数量.然后是T行测试数据,每个测试数据只包含一个正整数N(1<=N<=10000),N代表死亡骑士手中钞票的面值.

    注意:地精商店只有题中描述的三种道具.

    Output

    对于每组测试数据,请你输出死亡骑士最少要浪费多少钱给地精商人作为小费.

    Sample Input

    2
    900
    250

    Sample Output

    0
    50

    先分析数据,150 200 350 的物品可以随便用,350=150+200,所以买350跟买150 和200的效果一样,剩下200 和150 能买的无非是150/200.那全部买150的剩余的钱的钱再买50的一个50+150就是200的,这算是贪心吗哈哈哈。。
    代码

    #include<iostream>
    #include<cstdio>
    int main()
    {
        int c,T,w,n;
        cin>>T;
        while(T--)
        {
    
            scanf("%d",&c);
            w=c%150;
            n=c/150;
            while(w>=50)
            {
                if(n==0)break;
                w=w-50;
                n--;
            }
            cout<<w<<endl;
        }
    }
    
    
  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12799036.html
Copyright © 2020-2023  润新知