QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#873493 | #9530. A Game On Tree | Mini_PEKKA | WA | 178ms | 21756kb | C++20 | 1.6kb | 2025-01-26 15:29:37 | 2025-01-26 15:29:37 |
Judging History
answer
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define sz(a) (ll)a.size()
#define lb(x) (x&-x)
#define rep(i,a,b) for(ll i=(a);i<=(b);i++)
#define per(i,a,b) for(ll i=(a);i>=(b);i--)
using namespace std;
using ll=long long;
using ull=unsigned long long;
using db=double;
using pll=pair<ll,ll>;
//using i128=__int128;
template<typename T> constexpr bool cmax(T &a,const T &b){return b>a?a=b,1:0;}
template<typename T> constexpr bool cmin(T &a,const T &b){return b<a?a=b,1:0;}
constexpr ll N=100010;
constexpr ll mod=998244353;
ll n,ans,sz[N],fa[N],s[N];
vector<ll> T[N];
ll sq(ll x){
return x*x%mod;
}
ll qpow(ll a,ll b=mod-2){
ll ans=1;
for(;b>0;b/=2,(a*=a)%=mod){
if(b%2==1){
(ans*=a)%=mod;
}
}
return ans;
}
void dfs(ll u){
sz[u]=1;
ll ss=0;
for(ll v:T[u]){
if(v==fa[u]){
continue;
}
fa[v]=u;
dfs(v);
sz[u]+=sz[v];
(ss+=s[v])%=mod;
}
s[u]=(ss+sq(sz[u]))%mod;
for(ll v:T[u]){
if(v==fa[u]){
continue;
}
(ans+=sq(sz[v])*sq(n-sz[v]))%=mod;
(ans+=2*sq(n-sz[v])*(s[v]-sq(sz[v])))%=mod;
(ans+=s[v]*(ss-s[v]))%=mod;
}
}
void solve(){
cin>>n;
rep(i,1,n){
T[i].clear();
}
rep(i,1,n-1){
ll u,v;
cin>>u>>v;
T[u].pb(v);
T[v].pb(u);
}
ans=0;
dfs(1);
ll ip=qpow(n*(n-1)/2%mod);
cout<<ans*sq(ip)%mod<<'\n';
}
int main(){
ios::sync_with_stdio(0),cin.tie(0);
// freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
ll t;
cin>>t;
rep(i,1,t){
solve();
}
return 0;
}
/**
* typeperf "\Process(test)\Working Set Peak" -si 2
* TODO: delete while(1);
* TODO: multitest cleanup
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5864kb
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: 0
Accepted
time: 0ms
memory: 5684kb
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:
948445317 468414020 550143557 918384806 711758412 487662742 776412276 869581749 240852807 765628773 211048577 887328316 890334966 940494682 760637552 908032643 592850815 584006902 908525604 221832080 433351719 56023919 867301808 183319566 698771049 366957926 449579681 599710576 310564911 286902823 3...
result:
ok 1000 lines
Test #3:
score: 0
Accepted
time: 6ms
memory: 5748kb
input:
1000 94 59 1 33 59 73 1 6 33 83 59 4 59 20 59 61 6 39 1 76 73 71 6 44 39 9 71 24 4 87 9 57 83 2 9 81 71 82 20 90 2 85 39 12 9 30 83 66 30 53 9 47 9 36 44 43 53 29 12 31 53 64 81 38 31 84 82 77 38 23 71 93 84 78 83 58 31 68 90 42 1 55 64 13 78 70 78 62 24 19 55 92 87 14 57 10 84 65 81 63 6 75 36 91 1...
output:
508107725 996793960 201633249 335988372 842755864 460619380 342223697 207523414 429241811 391691799 542977964 786416604 454278948 685531402 25914978 440729774 228518323 679471537 82764520 554190841 432505337 143444089 189106586 337234245 61954935 905141094 532919674 703954588 185671863 942858630 692...
result:
ok 1000 lines
Test #4:
score: 0
Accepted
time: 178ms
memory: 21504kb
input:
10000 8 1 4 3 1 5 1 7 3 8 4 6 8 2 7 8 2 6 4 6 5 6 8 5 7 6 3 5 1 7 8 8 5 6 5 2 5 7 2 1 6 3 1 4 8 9 8 6 9 8 3 6 1 8 5 9 2 8 4 3 7 9 8 8 6 3 6 5 8 1 6 4 3 7 6 2 6 9 9 5 7 5 2 7 8 7 4 9 3 7 6 3 1 4 8 1 4 5 1 6 5 3 4 8 4 7 8 2 5 9 1 8 6 1 2 1 3 8 5 3 9 8 7 8 4 8 9 4 9 2 9 1 2 3 4 5 2 6 9 8 3 7 2 8 1 2 8 ...
output:
49657566 56023919 387074343 97051536 701572244 211048577 711758412 308100110 761007271 711758412 178698065 285212675 80216065 43380497 267677376 818005792 53239701 765628773 970145625 387074343 436731906 422725927 479157293 977872021 436731906 925779210 487662742 705549251 267677376 711758412 526851...
result:
ok 10000 lines
Test #5:
score: 0
Accepted
time: 175ms
memory: 21504kb
input:
10000 8 7 6 8 6 5 7 4 6 1 4 2 5 3 5 10 10 7 8 7 9 8 2 8 6 7 1 7 5 9 4 1 3 6 10 2 6 3 6 5 6 7 2 1 3 4 5 8 5 9 5 10 4 10 6 5 2 5 4 6 8 5 10 5 9 5 1 8 3 6 7 1 8 5 2 3 5 6 5 1 2 8 2 4 1 7 5 9 5 1 3 1 7 5 9 7 6 3 8 6 2 1 4 9 9 9 8 4 8 3 8 6 9 2 8 7 6 1 2 5 6 9 2 5 8 5 7 8 9 7 1 8 4 8 6 9 3 1 8 6 7 8 6 2 ...
output:
711758412 286902823 691130166 841483019 650641410 887328317 331207619 733278261 56023919 977872021 414394648 183319566 239374924 696059768 855285904 761007271 711758412 86268032 599710576 728310932 178698065 178698065 422725927 219002589 178698065 202450068 599710576 56023919 449579681 760637552 925...
result:
ok 10000 lines
Test #6:
score: -100
Wrong Answer
time: 173ms
memory: 21756kb
input:
10000 9 8 1 2 8 4 1 3 2 7 1 6 7 9 3 5 1 9 7 5 1 7 3 7 9 5 2 3 8 1 6 8 4 6 9 7 8 4 7 5 4 3 4 6 8 1 3 9 8 2 7 9 8 7 2 8 9 8 5 8 1 2 3 7 6 3 4 7 8 6 8 4 6 2 4 5 8 7 5 1 6 3 7 9 9 8 7 8 2 9 5 9 1 5 3 1 6 2 4 8 10 2 10 4 10 6 4 1 10 9 6 8 9 5 10 7 4 3 2 10 3 9 5 3 4 3 7 9 6 3 10 6 2 9 8 5 1 2 10 8 5 2 8 ...
output:
211048577 354315128 178698065 705549251 285212675 138645051 449579681 286902823 925779210 294297225 519087065 368179632 422725927 603876215 539175192 867301808 977540027 669439919 211048577 701572244 977872021 138645051 267677376 855285904 977872021 286902823 925286249 705549251 219002589 331207619 ...
result:
wrong answer 9994th lines differ - expected: '649995321', found: '-348249032'