Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
42104 LYLAKIOIAKIOI 【BJ】T1 C++ 通过 100 347 MS 91400 KB 1052 2026-06-11 15:10:14

Tests(20/20):


#include<bits/stdc++.h> using namespace std; const int N=1e7+10;int mod; int qp(int a,int b){ int x=1; for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) x=1ll*x*a%mod; return x; } int n; int fac[N],ifac[N]; int w[N]; void init(){ int lim=n*3; fac[0]=1; for(int i=1;i<=lim;i++) fac[i]=1ll*fac[i-1]*i%mod; ifac[lim]=qp(fac[lim],mod-2); for(int i=lim-1;i>=0;i--) ifac[i]=1ll*ifac[i+1]*(i+1)%mod; } int binom(int n,int m){return 1ll*fac[n]*ifac[m]%mod*ifac[n-m]%mod;} int main(){ cin>>n>>mod;n/=3; init(); w[0]=qp(81,mod-2); w[1]=1ll*(mod-16)*qp(729,mod-2)%mod; w[2]=1ll*(mod-68)*qp(2187,mod-2)%mod; w[3]=1ll*(mod-1535)*qp(59049,mod-2)%mod; int iv=qp(81,mod-2); for(int i=4;i<=n;i++){ w[i]=1ll*(99ll*w[i-1]+29ll*w[i-3]+28ll*(mod-w[i-2])+10ll*(mod-w[i-4]))%mod*iv%mod; } int ans=0; for(int i=0;i<=n;i++){ ans=(ans+1ll*w[i]*binom(3*n-i,2*n))%mod; }ans=1ll*ans*qp(9,n+2)%mod; cout<<9ll*(ans-1)%mod*qp(10,mod-2)%mod<<'\n'; return 0; }


测评信息: