各路大佬哪位能帮我优化一下,#1TLE

P1853 投资的最大效益

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


|