| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:求大神帮助,这段代码为什么WA!!!!In Reply To:求大神帮助,这段代码为什么WA!!!! Posted by:liuxing12409 at 2014-05-21 23:55:10 > #include <iostream>
>
> int cash;
> int N; //货币种数
> int num[11]; //每种货币数量数组
> int value[11]; //每种货币价值
> int f[100001]; //动态规划数组
> #define Max(a,b) (a)>(b)?(a):(b)
>
> void ZeroOnePack(int cost, int weight)
> {
> for (int i = cash; i >= cost; i--)
> {
> f[i] = Max(f[i], f[i - cost] + weight);
> }
> }
>
> void CompletePack(int cost, int weight)
> {
> for (int i = cost; i <= cash; i++)
> {
> f[i] = Max(f[i], f[i - cost] + weight);
> }
> }
>
> int main(void)
> {
> while (std::cin >> cash >> N)
> {
> for (int i = 0; i < N; i++)
> {
> std::cin >> num[i];
> std::cin >> value[i];
> }
> memset(f, 0, sizeof(f));
> for (int i = 0; i < N; i++)
> {
> if (num[i] * value[i] > cash)
> {
> CompletePack(value[i], value[i]);
> }
> else
> {
> int k = 1;
> int amount = num[i];
> while (k < amount)
> {
> ZeroOnePack(value[i], value[i]);
> amount -= k;
> k *= 2;
> }
> ZeroOnePack(amount * value[i], amount * value[i]);
> }
> }
> std::cout << f[cash] << std::endl;
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator