1. 程式人生 > >【NOIp-2006-T2】開心的金明【DP基礎】

【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 }