就这样一次次的放,放到没钱为止。 注意,由于货币的数量较大,如果最优方案可以执行多次,那就一次过执行完。 #include<stdio.h> #include<stdlib.h> #defineMAX_N 64 structnode { intval, cnt; }; structnode coin[MAX_N]; intN, C, best, best_idx, ans, need[MAX_N]; inlineintmin(inta,intb) ...
【POJ - 3040】Allowance(贪心) Allowance 原文是English,这里就放Chinese了 Descriptions: 作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴。FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币、5美分硬币、10美分硬币和50美分硬币。使用这些...
POJ 3040 贪心 链接: http://poj.org/problem?id=3040 题解: 1:大于c的就直接取; 2:如果小于就从大到小拿钱,能拿多少拿多少,但不能超过c; 3:如果2拿的钱小于c,就从小到大拿钱,能拿多少拿多少,但要求是超过c的时候是最小的,也就是说,这些钱的总和是大于c的最小数; 4:将此类取钱方式求出次数,...
题意就是你有很多张面额不同的纸币,你每个星期要给奶牛至少c元,问你用现在的钱最多给奶牛多少周。 这个题的感觉就是贪心,想了两三种方案感觉都不太对,后来发现这真的是很好的一个题,首先,将大于等于c的面额的钱直接每个星期给奶牛一张,将面额大于等于c的前去除,然后从大到小开始选择,要选择的金额尽可能的...
http://poj.org/problem?id=3040 FJ 有n种不同面值的硬币,每种硬币都有相应的个数,大面值的硬币值总能被小面值的硬币值整除,每周需要支付 Bessie c元,问最多能支付Bessie多少周。 这题之所以能贪心,据说关键是这句话 where each denomination of coin evenly divides the next-larger denomination。
POJ 3040 Allowance 题意:农夫约翰要给奶牛Bessie发工资了,每周至少 C 元。 约翰手头上有面值V_i的硬币B_i个,这些硬币的最小公约数为硬币的最小面值。求最多能发几周? 分析:使用贪心的策略,分三个步骤 1.把面值大于c的硬币直接统统发完 2.面值从大往小取,把面值凑到最大但不大于等于c,同时减少使用的硬...
POJ 3040 Allowance 一道简(kun)单(nan)的贪心题目 大体思路是从大到小枚举 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
参考了:码农场»POJ 3040 Allowance 题解 《挑战程序设计竞赛(第2版)》 大硬币面额是小硬币面额的倍数很重要,这意味着同等数量的一堆小硬币可以被一枚大硬币代替,这样小硬币就可以剩下来以后用,可以保证最小的浪费,所以 1. 从大到小贪心,尽量多的选择大硬币,但是不要超过所需金额c ...
[POJ3040] Allowance Description As a reward for record milk production, Farmer John has decided to start paying Bessie the cow a small weekly allowance. FJ has a set of coins in N (1 <= N <= 20) different denominations, where each denomination of coin evenly divides the next-larger ...
POJ3040贪心 题意:作为创纪录的牛奶生产的奖励,农场主约翰决定开始给Bessie奶牛一个小的每周津贴。FJ有一套硬币N种(1≤N≤20)不同的面额,每枚硬币是所有比他小的硬币面值的倍数,例如1美分硬币、5美分硬币、10美分硬币和50美分硬币。使用这些硬币,FJ每周至少给Bessie C(1 <= C <=100000000)美分。请你计算他...