题意:HM先生喜欢吃汉堡,有两种汉堡,每种无限多个,吃完第一种的汉堡一个需要m时间,第二种需要n时间,HM先生饭量很大可以不停的吃,给定一个时间t,在t时间段内希望HM先生吃尽量多的汉堡,并且空余出来的时间要尽量少
分析:是一个只有两种元素的完全背包问题。
代码:
View Code
1 #include2 #include 3 #include 4 using namespace std; 5 #define DEBUG 6 const int MAXN = 10000 + 10; 7 int dp[MAXN]; 8 const int INF = 0x3f3f3f3f; 9 int max(int a, int b){10 return a>b?a:b;11 }12 int main(){13 #ifndef DEBUG14 freopen("in.txt", "r", stdin);15 #endif16 int c[2], t;17 while(scanf("%d%d%d", &c[0], &c[1], &t)!=EOF){18 int i, j;19 for(i=1; i