求大佬求助,两个TLE!!!

P2822 [NOIP2016 提高组] 组合数问题

哥们你这时间复杂度是o(t*n*m) 肯定会t啊,我刚刚交了一发o(t*n)的过了 ```cpp #include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' int c[2002][2002]; int dp[2002][2002]; signed main() { ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); int t,k; cin>>t>>k; c[0][0]=1; for(int i=1;i<=2000;i++) { c[i][0]=1; for(int j=1;j<=i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%k; } for(int i=0;i<=2000;i++) { dp[i][0]=(c[i][0]==0); for(int j=1;j<=i;j++) dp[i][j]=dp[i][j-1]+(c[i][j]==0); } while(t--) { int n,m; cin>>n>>m; int ans=0; for(int i=0;i<=n;i++) { ans+=dp[i][min(i,m)]; } cout<<ans<<endl; } } ``` 这里的dp【i】【j】指的是 n为i,m为0-j时满足的个数
by 2104300103xf @ 2023-04-21 16:11:46


谢大佬
by ouiostream @ 2023-05-31 12:11:32


@[ouiostream](/user/557069) 你这代码怎么写得和深入浅出上的一摸一样
by ZYK_luogu @ 2023-06-26 10:30:06


@[ZYK_luogu](/user/742157) 我都没有深入浅出的书
by ouiostream @ 2023-06-26 12:14:31


其中有一些部分是同学教的 可能他抄的吧
by ouiostream @ 2023-06-26 12:15:45


开O2可以多5分(亲测
by Young_happY @ 2023-08-28 11:15:33


|