1. 使用快读快输
```cpp
long long read(){
long long x=0,sgn=1;
char ch=getchar();
while(ch<'0' || ch>'9'){
if(ch=='-')sgn=-1;
ch=getchar();
}
while(ch>='0' && ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
return x*sgn;
}
void write(long long n){
if(n<0){putchar('-');n=-n;}
if(n>9)write(n/10);
putchar(n%10+'0');
}
```
2. 开启$O2$优化(吸氧)
3. 代码方面,由于我是蒟蒻,做不来,就不给出建议了(
by zzx114514 @ 2023-07-18 21:29:45
因为题目中的 $a$ 为1000倍数,完全可以将所有的 $a$ 除以1000,然后将 $s$ 也除以1000
代码
```
#include<bits/stdc++.h>
using namespace std;
int s,n,t,a[12],b[12],dp[100000010];
int main(){
ios::sync_with_stdio(false);
cin>>s>>t>>n;
for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
for(int T=1;T<=t;T++){
for(int i=1;i<=n;i++){
for(int j=a[i]/1000;j<=s/1000;j++){
dp[j]=max(dp[j],dp[j-a[i]/1000]+b[i]);
}
}
s+=dp[s/1000];
}
cout<<s<<endl;
return 0;
}
```
by 啊吧怪 @ 2023-07-18 21:32:39
如果解决了您的问题,请关注 @[啊吧怪](/user/332517) 谢谢
by 啊吧怪 @ 2023-07-18 21:36:15
@[啊吧怪](/user/332517) 已关注,谢谢。
by Clay_L @ 2023-07-19 08:15:50