QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#725261#9530. A Game On Treewht11WA 0ms10848kbC++141.8kb2024-11-08 16:52:412024-11-08 16:52:43

Judging History

This is the latest submission verdict.

  • [2024-11-08 16:52:43]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 10848kb
  • [2024-11-08 16:52:41]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define lowbit(x) (x & (-x))
#define debug(x) cerr << #x << ": " << x << endl;
const int N = 2e5 + 10;
const int mod = 998244353;
int t = 1, n;
vector<int> G[N];
int ans = 0;
int siz[N], sum[N];
int qpow(int a, int n)
{
    int res = 1;
    while (n)
    {
        if (n & 1)
            res = res * a % mod;
        a = a * a % mod;
        n >>= 1;
    }
    return res % mod;
}
int sum1[N];
int num1, num2, num3;
void dfs(int u, int fa)
{
    siz[u] = 1;
    for (auto v : G[u])
    {
        if (v == fa)
            continue;
        dfs(v, u);
        siz[u] += siz[v];
        ans = (ans + 2 * (sum[v] * sum[u]) % mod) % mod; // 公共边的一段在子树v中,另一端在另一个子树中,但最近公共祖先是u
        sum[u] = (sum[u] + sum[v]) % mod;
        ans = (ans + (2 * (n - siz[v]) % mod * (n - siz[v]) % mod * sum[v] - (siz[v] * siz[v] % mod)) % mod) % mod; // 公共边的一段以u为起点,另一端在子树v中
    }
    ans = (ans + (siz[u] * siz[u] % mod * (n - siz[u]) % mod * (n - siz[u]) % mod)) % mod;
    sum[u] = (sum[u] + (siz[u] * siz[u]) % mod) % mod;
    return;
}
void solve()
{
    cin >> n;
    for (int i = 1; i < n; i++)
    {
        int u, v;
        cin >> u >> v;
        G[u].push_back(v);
        G[v].push_back(u);
    }
    ans = 0;
    int num = n * (n - 1) / 2 % mod * n % mod * (n - 1) / 2 % mod;
    num = qpow(num, mod - 2);
    dfs(1, 0);
    cout << (ans * num) % mod << endl;
    for (int i = 1; i <= n; i++)
    {
        sum[i] = 0, siz[i] = 0,
        G[i].clear();
    }
    return;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> t;
    while (t--)
        solve();
    return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 10848kb

input:

2
3
1 2
2 3
5
1 2
1 5
3 2
4 2

output:

332748120
399297744

result:

wrong answer 1st lines differ - expected: '443664158', found: '332748120'