Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36102 | A21μΘ_wjy | 【S】T3 | C++ | 通过 | 100 | 515 MS | 45576 KB | 885 | 2025-02-07 15:49:33 |
#include<bits/stdc++.h> #define int long long #define PII pair<int,int> using namespace std; const int mod=998244353; const int Inv2=(mod+1)>>1; const int maxn=2e5+7; int n; int EU[maxn],EV[maxn]; int GU[maxn],GV[maxn]; int DE[maxn],DG[maxn]; map<PII,bool> E; signed main(){ // freopen("tree.in","r",stdin); // freopen("tree.out","w",stdout); cin>>n; for(int i=1;i<n;i++)cin>>EU[i]>>EV[i]; for(int i=1;i<n;i++)cin>>GU[i]>>GV[i],DG[GU[i]]++,DG[GV[i]]++; for(int i=1;i<n;i++){ E[PII(EU[i],EV[i])]=E[PII(EV[i],EU[i])]=1; } int Ans=(n-1)*Inv2%mod; const int Inv16=Inv2*Inv2%mod*Inv2%mod*Inv2%mod; int ED2=0; for(int i=1;i<n;i++){ ED2+=n-1-DG[EU[i]]-DG[EV[i]]; } for(int i=1;i<n;i++)ED2+=E[PII(GU[i],GV[i])]; ED2%=mod; (Ans+=ED2*Inv16%mod)%=mod; cout<<Ans<<endl; return 0; }