#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,m; ll dp[100000],v[100000],p[100000]; int main() { cin>>n>>m; for(int i=1;i<=m;i++) cin>>v[i]>>p[i]; for(int i=1;i<=m;i++) { for(int j=n;j>v[i];j--) if(j>=v[i]) dp[j]=max(dp[j],dp[j-v[i]]+v[i]*p[i]); } cout<<dp[n]; cout<<endl; return 0; }
解题思路:
注意事项:
参考代码:
0.0分
0 人评分
整除问题 (C语言代码)浏览:949 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:854 |
C二级辅导-同因查找 (C++代码)(42的倍数,,所以直接递加42输出)浏览:1161 |
破解简单密码 (C语言代码)浏览:1864 |
校门外的树 (C语言代码)浏览:1166 |
【回文数(二)】 (C++代码)浏览:932 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:508 |
【计算两点间的距离】 (C语言代码)浏览:927 |
简单的a+b (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:806 |