Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
33456 liuyile 【BJ】T1 C++ 运行超时 80 3000 MS 20528 KB 2087 2024-10-09 15:22:21

Tests(20/21):


#pragma GCC optimize("Ofast") #include<bits/stdc++.h> using namespace std; #define N 705 #define ll long long char buf[100000],*p1=buf,*p2=buf,ch; int result; #define getc() p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++; inline int read(){ ch=getc();result=0; while (ch<'0'||ch>'9') ch=getc(); while (ch>='0'&&ch<='9') result=result*10+(ch^48),ch=getc(); return result; } int n,d[N][N],p[N][N],i,j,k,l,pos; ll a[N][N],b[N][N<<1],g[N],C[N][N],t[N],S,e,inv; const int mod1=998244353,mod2=1000000007,mod3=1000000009; int M; #define mod M inline ll ksm(ll x,ll y){ll ret=1;for(;y;y>>=1,x=x*x%mod)if(y&1)ret=ret*x%mod;return ret;} void misn(){ for(i=2;i<=n+1;++i) for(j=1;j<i;++j) d[j][i]=d[i][j]=read(); for(i=2;i<=n+1;++i) for(j=1;j<i;++j) p[j][i]=p[i][j]=read(); for(i=1;i<=n;++i){ a[i][i]=1; S=0; for(j=1;j<=n+1;++j)S+=p[i][j]; S=ksm(S%mod,mod-2); a[i][i]=1; for(j=1;j<=n+1;++j){ if(j<=n)(a[i][j]-=p[i][j]*S)%=mod; (t[i]+=S*d[i][j]%mod*p[i][j])%=mod; } } for(i=1;i<=n;++i) for(j=1;j<=n;++j) b[i][j]=a[i][j]; for(j=1;j<=n;++j)b[j][j+n]=1; for(i=1;i<=n;++i){ for(j=i;j<=n;++j)if(b[j][i]){pos=j;break;} if(pos^i)swap(b[pos],b[i]); inv=ksm(b[i][i],mod-2); for(j=i;j<=n+n;++j)(b[i][j]*=inv)%=mod; for(j=i+1;j<=n;b[j][i]=0,++j) for(e=b[j][i],k=i+1;k<=(n<<1);++k) (b[j][k]-=e*b[i][k])%=mod; } for(i=n;i;--i) for(j=1;j<i;++j) for(k=n+1;k<=(n<<1);++k) (b[j][k]-=b[j][i]*b[i][k])%=mod; for(i=1;i<=n;++i)for(j=1;j<=n;++j)C[i][j]=b[i][j+n]; for(i=1;i<=n;++i){ S=0; for(j=1;j<=n;++j)if(i!=j)(S+=t[j]*C[i][j])%=mod; S=-S*ksm(C[i][i],mod-2)%mod; swap(t[i],S); for(k=1;k<=n;++k)for(g[k]=0,l=1;l<=n;++l) (g[k]+=C[k][l]*t[l])%=mod; for(j=1;j<=n;++j)cout<<(g[j]+mod)%mod<<" ";cout<<"\n"; swap(t[i],S); } } #undef mod int main(){ // freopen("genshin.in","r",stdin); // freopen("genshin.out","w",stdout); ios::sync_with_stdio(0); n=read();M=read();misn();}


测评信息: