Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
41161 baka24 【BJ】T2 C++ 运行超时 70 1000 MS 2440 KB 1289 2026-04-11 15:24:48

Tests(22/23):


#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fr first #define sc second #define mk make_pair const int MAXN=100010,N=20,Mod=998244353; int read(){int x=0,f=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f;} int Pow(int x,int y){int rt=1;while(y){if(y&1)rt=rt*x%Mod;x=x*x%Mod,y>>=1;}return rt;} int n,k,f[MAXN],g[MAXN],jc[MAXN],ny[MAXN],S[MAXN]; void add(int &x,int y){x+=y;if(x>=Mod)x-=Mod;} int C(int x,int y){return jc[x]*ny[y]%Mod*ny[x-y]%Mod;} void slv(){ jc[0]=ny[0]=1; for(int i=1;i<=MAXN-5;i++)jc[i]=jc[i-1]*i%Mod,ny[i]=Pow(jc[i],Mod-2); n=read(),k=read(); f[0]=1,S[0]=1; for(int i=1;i<=n;i++){ for(int j=i;j>=1;j--)S[j]=(S[j-1]+S[j]*j)%Mod;S[0]=0; for(int j=i*2;j>=0;j--){ if(j)add(f[j],f[j-1]*2); if(j>1)add(f[j],f[j-2]); f[j]=f[j]*((j-1)*j/2)%Mod; add(g[i],f[j]); } g[i]=Pow(g[i],k); for(int j=1;j<i;j++)add(g[i],Mod-g[j]*S[j]%Mod); printf("%lld\n",g[i]*ny[i]%Mod); } } signed main(){ // freopen("count.in","r",stdin);freopen("count.out","w",stdout); slv(); return 0; }


测评信息: