Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
36128 Mengmohan 【S】T3 C++ 运行出错 85 1330 MS 170380 KB 1059 2025-02-07 16:50:58

Tests(17/20):


#include<bits/stdc++.h> using namespace std; const int N=2e5+10; const long long P=998244353; int n; long long ans,inv4,inv16; vector<int> ve[N]; map<int,bool> mp[N]; int qpow(int a,int b){ int ans=1; for(;b;b>>=1){ if(b&1) ans=1ll*ans*a%P; a=1ll*a*a%P; } return ans%P; } void dfs(int x,int fa){ for(int i=0;i<ve[x].size();i++){ int y=ve[x][i]; if(y==fa) continue; ans=(ans+1ll*(n-mp[x].size()-mp[y].size()-(!(mp[x].count(y)||mp[y].count(x))))*inv16%P)%P; dfs(y,x); } } int main(){ scanf("%d",&n); for(int i=1;i<n;i++){ int u,v; scanf("%d%d",&u,&v); ve[u].push_back(v); ve[v].push_back(u); } for(int i=1;i<n;i++){ int u,v; scanf("%d%d",&u,&v); mp[u][v]=1; mp[v][u]=1; } inv4=qpow(4,P-2); inv16=inv4*inv4%P; ans=(ans+1ll*n*(n-1)%P*inv4%P)%P; ans=((ans-1ll*(n-2)*(n-1)%P*inv4%P)%P+P)%P; dfs(1,0); printf("%lld",ans%P); return 0; }


测评信息: