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 }
【NOIp-2006-T2】开心的金明【DP基础】
猜你喜欢
转载自www.cnblogs.com/rign/p/10048196.html
今日推荐
周排行