QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#727158 | #9530. A Game On Tree | FZY0314 | WA | 2ms | 5680kb | C++20 | 2.0kb | 2024-11-09 11:45:02 | 2024-11-09 11:45:04 |
Judging History
answer
#include<iostream>
#include<queue>
#include<cstring>
#include<tuple>
//~FZY.//
#include<bits/stdc++.h>
#define Heap_int priority_queue<int, vector<int>, greater<int>>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define out(x) cout << ((x) ? "YES" : "NO") << endl
#define mod(x, P) (((x) % (P) + (P)) % (P))
//#define mod(x) (((x) % (P) + (P)) % (P))
#define ULL unsigned long long
#define PII pair<int, int>
#define PLL pair<LL, LL>
#define lowbit(x) ((x) & -(x))
#define LL long long
#define pb push_back
#define gcd __gcd
#define Big __int128
#define endl "\n"
#define x first
#define y second
//#define int LL
using namespace std;
const LL N = 2e5 + 10, M = 2e6 + 10, INF = 1e9 + 7, mod = 998244353;
LL pow1(LL x,LL mi)
{
LL ans=1;
while(mi)
{
if(mi%2)
ans=ans*x%mod;
x=x*x%mod;
mi/=2;
}
return ans;
}
vector<int>a[N];
LL dp[N],sum[N],ans=0,n;
void dfs(int u,int fa)
{
dp[u]=1,sum[u]=0;
for(auto i:a[u])
{
if(i!=fa)
{
dfs(i,u);
dp[u]=(dp[u]+dp[i])%mod;
sum[u]=(sum[u]+dp[i]*dp[i])%mod;
}
}
sum[u]=(sum[u]+dp[u]*dp[u])%mod;
LL num=0;
for(auto i:a[u])
{
if(i!=fa)
{
ans=(ans+(n-dp[i]+mod)*(n-dp[i]+mod)%mod*((dp[i]*dp[i])%mod))%mod;
ans=(ans+2*sum[i]*num)%mod;
num=(num+sum[i])%mod;
ans=(ans+((2*((sum[i]-(dp[i]*dp[i])%mod+mod)%mod))%mod)*((n-dp[i]+mod)%mod)%mod*((n-dp[i]+mod)%mod))%mod;
}
}
}
void solve(){
cin>>n;
for(int i=0;i<n-1;i++)
{
int u,v;
cin>>u>>v;
a[u].push_back(v);
a[v].push_back(u);
}
ans=0;
dfs(1,0);
LL p=n*(n-1)%mod*pow1(2,mod-2)%mod;
cout<<ans*pow1(p*p%mod,mod-2)%mod<<endl;
for(int i=1;i<=n;i++)
a[i].clear();
}
signed main(){
IOS;
int T = 1;
cin >> T;
while(T--){
solve();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3708kb
input:
2 3 1 2 2 3 5 1 2 1 5 3 2 4 2
output:
443664158 918384806
result:
ok 2 lines
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 5680kb
input:
1000 7 3 6 4 3 5 3 2 6 1 4 7 1 12 5 7 10 7 2 10 11 2 1 7 8 1 4 2 9 11 6 9 12 11 3 5 6 2 5 1 2 4 5 6 4 3 6 5 2 5 1 5 4 5 3 2 8 1 8 2 8 4 2 6 1 5 6 7 6 3 8 8 3 8 7 3 4 8 6 4 2 7 5 2 1 4 4 3 1 4 3 2 1 6 5 1 6 1 2 5 3 5 4 2 12 8 11 5 11 12 8 3 12 6 12 2 3 4 6 10 11 1 5 9 5 7 5 9 6 1 7 6 4 7 8 7 5 4 9 6 ...
output:
934863761 939119690 381551177 259543533 495302366 760142705 776412276 292818345 628600613 203346074 791817282 243399088 247498602 616913179 298240908 198662952 507601297 584006902 38943856 154050056 359102138 109501295 816465290 98592036 758665710 166649059 961765302 589524409 310564911 431340154 81...
result:
wrong answer 1st lines differ - expected: '948445317', found: '934863761'