本题输入数据虽然不大,但是在计算过程中数会很大
像以下代码不做优化是过不去的:
#include<bits/stdc++.h>
using namespace std;
long long t,m,a[100100],b[100100],dp[100000100],w;
int main(){
scanf("%lld%lld%lld",&t,&m,&w);
for(int i = 1;i <= w;++i) scanf("%lld%lld",&a[i],&b[i]);
while(m--){
memset (dp , 0 ,sizeof (dp));
for(int i = 1;i <= w;i++)
for(int j = a[i];j <= t;j++)
dp[j] = max( dp[j],dp[ j - a[i] ] + b[i]);
t += dp[t];
}
cout<<t;
}
要么RE要么T,把输入的数据除以一千才可以过