您的位置:首页 > 其它

USACO 3.1 Score Inflation (完全背包)

2015-10-17 21:35 232 查看
#include <stdio.h>
#define DEBUG 1
#define TESTCASES 9
#define MAX 10000

int contestMinutes, numOfClasses;
int pointArray[MAX + 1];
int minuteArray[MAX + 1];
int maxPoints[MAX + 1];

int main(){
#if DEBUG
int 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

scanf("%d%d", &contestMinutes, &numOfClasses);
int i;
for (i = 1; i <= numOfClasses; i++)
scanf("%d%d", &pointArray[i], &minuteArray[i]);

int preClasses, minutesLimit;
for (minutesLimit = 1; minutesLimit <= contestMinutes; minutesLimit++)
maxPoints[minutesLimit] = 0;

int lowerMinutes, temp;
for (preClasses = 1; preClasses <= numOfClasses; preClasses++){
lowerMinutes = minuteArray[preClasses];
for (minutesLimit = lowerMinutes; minutesLimit <= contestMinutes; minutesLimit++){
temp = maxPoints[minutesLimit - lowerMinutes] + pointArray[preClasses];
if (temp > maxPoints[minutesLimit])
maxPoints[minutesLimit] = temp;
}
}

printf("%d\n", maxPoints[contestMinutes]);

#if DEBUG
}
#endif
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息