TLE75pts 求优化


O(qm^3) ,及其暴力的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int q,n,m,ans;
const int mod=998244353;
int qpow(int x,int y){
	int res=1;
	while(y){
		if(y&1) res=res*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return res;
}
int C(int x,int y){
	int fac=1;
	for(int i=1;i<=y;i++) fac=fac*i%mod;
	int res=qpow(fac,mod-2);
	for(int i=x-y+1;i<=x;i++) res=res*i%mod;
	return res;
}
signed main(){
	cin>>q;
	while(q--){
		cin>>n>>m;
		for(int i=0;i<=m;i++){
			ans=0;
			for(int j=0;j<=min(i,n-i);j++)
				ans=(C(n-j,i)*C(i,j)+ans)%mod;
			cout<<ans<<" ";
		}
		cout<<"\n";
	}
    return 0; 
}

求优化awa

主要是重复计算太多,这题 n\le10^9 没办法预处理

大佬好厉害!

厉害个啥啊,次次垫底还厉害

居然能写出来75分%%%