Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
35971 zqh2010 【S】T3 C++ 解答错误 5 2477 MS 146972 KB 1350 2025-02-07 12:24:12

Tests(1/20):


/*C zhengjie*/ #include<bits/stdc++.h> #define int long long using namespace std; const int mod=998244353; int qpow(int a,int b) { int ret=1; while(b) { if(b&1)ret*=a,ret%=mod; a*=a,a%=mod,b>>=1; } return ret; } int ny(int chu) { return qpow(chu,mod-2); } int n,dp[200005],f[200005],g[200005],a,b; vector<int> v[200005]; void dfs(int p,int fa){ dp[p]=g[p]=0; f[p]=1; int cnt=0,sum=0; for(int i=0;i<v[p].size();i++){ if(v[p][i]!=fa){ cnt++; dfs(v[p][i],p); f[p]*=f[v[p][i]],f[p]%=mod; } } for(int i=0;i<v[p].size();i++){ if(v[p][i]!=fa){ dp[p]+=dp[v[p][i]]*f[p]%mod*ny(f[v[p][i]])%mod,dp[p]%=mod; g[p]+=g[v[p][i]]*f[p]%mod*ny(f[v[p][i]])%mod,g[p]%=mod; sum+=f[p]*ny(2)%mod,sum%=mod; } } dp[p]=2*dp[p]%mod+cnt*f[p]%mod+sum,dp[p]%=mod; g[p]=2*g[p]%mod+f[p],g[p]%=mod; f[p]*=2,f[p]%=mod; } signed main(){ ios::sync_with_stdio(false); cin.tie(0),cout.tie(0); cin>>n; for(int i=1;i<=n-1;i++){ int x,y; cin>>x>>y; v[x].push_back(y); v[y].push_back(x); } dfs(1,0); a=(dp[1]-g[1]+mod)%mod*ny(f[1])%mod+1; a%=mod; for(int i=1;i<=n;i++)v[i].clear(); for(int i=1;i<=n-1;i++){ int x,y; cin>>x>>y; v[x].push_back(y); v[y].push_back(x); } dfs(1,0); b=(dp[1]-g[1]+mod)%mod*ny(f[1])%mod+1; b%=mod; cout<<a*b%mod; return 0; }


测评信息: