【NOIp-2006-T2】开心的金明【DP基础】

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int N,m;
 4 int cost[30],value[30];
 5 int dp[30005];
 6 
 7 int main(){
 8     memset(dp,0,sizeof(dp));
 9     cin>>N>>m;
10     for(int i=0;i<m;i++){
11         cin>>cost[i]>>value[i];
12         value[i]*=cost[i];
13     }
14     for(int i=0;i<m;i++){
15         for(int j=N;j>=cost[i];j--){
16             dp[j]=max(dp[j],dp[j-cost[i]]+value[i]);
17         }
18     }
19     cout<<dp[N];
20     return 0;
21 }

猜你喜欢

转载自www.cnblogs.com/rign/p/10048196.html
今日推荐