USACO 2.3 Money Systems (DP 动态规划 + 空间优化)

来源:互联网 发布:淘宝充值软件利润 编辑:程序博客网 时间:2024/05/21 01:56
#include <stdio.h>#define DEBUG 1#define TESTCASES 9//ways[constructedMoney]表示凑成constructedMoney的数量的钱时的方案数long long ways[10001];int main(){#if DEBUGint testCase;for (testCase = 1; testCase <= TESTCASES; testCase++){char inputFileName[20] = "inputX.txt";inputFileName[5] = '1' +  (testCase - 1);freopen(inputFileName, "r", stdin);printf("\n#%d\n", testCase);#endif int typesOfCoins, moneyToConstruct; scanf("%d%d", &typesOfCoins, &moneyToConstruct); int constructedMoney; for (constructedMoney = 1; constructedMoney <= moneyToConstruct; constructedMoney++) ways[constructedMoney] = 0; ways[0] = 1; int type; for (type = 1; type <= typesOfCoins; type++){ int coinsValue; scanf("%d", &coinsValue); for (constructedMoney = coinsValue; constructedMoney <= moneyToConstruct; constructedMoney++) ways[constructedMoney] += ways[constructedMoney - coinsValue]; }printf("%lld\n", ways[moneyToConstruct]);#if DEBUG}#endifreturn 0;}

0 0
原创粉丝点击