为什么会TLE

P2938 [USACO09FEB] Stock Market G

@[AFoxOfZzr](/space/show?uid=118086) ~~不如O3~~ \ ~~#pragma GCC optimize("O3")~~
by Loser_King @ 2019-05-29 19:10:49


我也是我也是欸。交了份题解里的ac代码,TLE了,数据是不是变过了啊。
by ve_2021 @ 2019-06-02 19:45:53


@[AFoxOfZzr](/space/show?uid=118086) 要开O2优化
by _Rainlzy @ 2019-09-27 06:35:40


~~#pragma GCC optimize("Ofast")~~
by china·xyc @ 2019-11-16 21:21:53


@[AFoxOfZzr](/user/118086) 试试过滤掉下跌的和一张都买不起的股票再DP?
by 035966_L3 @ 2021-08-10 01:11:22


@[AFoxOfZzr](/user/118086) ```cpp #include<bits/stdc++.h> using namespace std; int p[52][12]; int t[500012]; int y[52]; int x[52]; int bag(int n,int m) { memset(t,0,sizeof(t)); for(int i=0;i<=m;++i) for(int j=1;j<=n;++j) t[i+y[j]]=max(t[i+y[j]],t[i]+x[j]); int ans=0; for(int i=m>>1;i<=m;++i) ans=max(ans,t[i]); return ans; } int main() { int s,d,m,sum; scanf("%d %d %d",&s,&d,&m); for(int i=1;i<=s;++i) for(int j=1;j<=d;++j) scanf("%d",&p[i][j]); sum=m; for(int i=1;i<d;++i) { memset(y,0,sizeof(y)); memset(x,0,sizeof(x)); int bsc=0; for(int j=1;j<=s;++j) if(p[j][i+1]>p[j][i]&&p[j][i]<=sum) bsc++,y[bsc]=p[j][i],x[bsc]=p[j][i+1]-p[j][i]; sum+=bag(bsc,sum); } printf("%d",sum); return 0; } ```
by 035966_L3 @ 2021-08-10 01:12:57


@[_Rainlzy](/user/166307)
by 035966_L3 @ 2021-08-10 01:13:40


@[ve_2021](/user/101474)
by 035966_L3 @ 2021-08-10 01:13:54


|