如果仅AC on #2 ,该如何应对啊

P2224 [HNOI2001] 产品加工

不会 DP。
by ACPC @ 2023-10-06 09:17:36


@[A_Passing_Creeper](/user/540363) 没是现学嘛
by rex_qwq @ 2023-10-06 09:18:29


@[A_Passing_Creeper](/user/540363) 破案了,答案算错了 应该这样 ```cpp int minn=inf; for(int i=0;i<=maxn;i++)minn=min(minn,max(dp[n%2][i],i)); ```
by rex_qwq @ 2023-10-06 09:20:52


@[rex_qwq](/user/91737) 好的,我不用重学了(喜
by ACPC @ 2023-10-06 09:21:36


@[A_Passing_Creeper](/user/540363) 好了现在又要重学了 ```cpp #include<bits/stdc++.h> //#pragma GCC optimize(3,"Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,fma,popcnt,tune=native") using namespace std; #define int long long #define kg putchar(' ') #define endl puts("") inline int read(){ int vis=1,ans=0; char x=getchar(); while(x<'0'||x>'9'){ if(x=='-')vis=-1; x=getchar(); } while(x>='0'&&x<='9'){ ans=ans*10+x-'0'; x=getchar(); } return vis*ans; } inline void print(int x){ if(x<0)putchar('-'),x=-x; if(x>9)print(x/10); putchar(x%10+'0'); } int n; const int N=6e3+90,inf=1e18; int dp[2][N*5]; int t[N][4]; int maxn; signed main(){ n=read(); sizeof(dp,0x3f,sizeof(dp)); dp[0][0]=0; for(int i=1;i<=n;i++){ t[i][1]=read(); t[i][2]=read(); t[i][3]=read(); } for(int i=1,vis=1;i<=n;i++,vis^=1){ maxn+=max(t[i][1],t[i][3]); for(int j=maxn;j>=0;j--){ dp[vis][j]=(!t[i][2]?inf:dp[vis^1][j]+t[i][2]); if(j>=t[i][1])dp[vis][j]=min(dp[vis][j],(!t[i][1]?inf:dp[vis^1][j-t[i][1]])); if(j>=t[i][3])dp[vis][j]=min(dp[vis][j],(!t[i][3]?inf:dp[vis^1][j-t[i][3]]+t[i][3])); } } int minn=inf; for(int i=0;i<=maxn;i++)minn=min(minn,max(dp[n%2][i],i)); print(minn); return 0; } ``` TLE on #7,WA on #9
by rex_qwq @ 2023-10-06 09:24:55


@[A_Passing_Creeper](/user/540363) 卡常之后不 T了
by rex_qwq @ 2023-10-06 09:27:22


@[A_Passing_Creeper](/user/540363) A了(喜
by rex_qwq @ 2023-10-06 09:28:23


@[rex_qwq](/user/91737) %%%
by ACPC @ 2023-10-06 09:28:53


|