Logo Wy Online Judge

WyOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#471#93. 「NOIP2020」排水系统PigsyyCompile Error//C++232.0kb2025-04-24 20:48:522025-04-24 20:48:52

answer

#include <bits/stdc++.h>
#define ll __int128
using namespace std;
const int N = 1e5 + 5;
int n, m, d[N], es[N][6];
int q[N], deg[N];
ll gcd(ll a, ll b) {
    if (a == 0)
        return b;

    if (b == 0)
        return a;

    return gcd(b, a % b);
}
struct node {
    ll a, b;
    inline node operator + (const node &aa) {
        ll val = gcd(b, aa.b);
        val = (b / val) * aa.b;
        return (node) {
            val / b *a + val / aa.b *aa.a, val
        };
    }
    inline void calc() {
        ll val = gcd(a, b);
        a /= val, b /= val;
    }
} dp[N];
inline void ffr(int &ret) {
    ret = 0;
    register int ch = getchar();

    while (!isdigit(ch))
        ch = getchar();

    while (isdigit(ch))
        ret = ret * 10 + (ch ^ 48), ch = getchar();
}
void ks(ll val) {
    int st[30], top = 0;

    if (val == 0) {
        putchar(48);
        return;
    }

    while (val)
        st[++top] = val % 10, val /= 10;

    for (register int i = top; i >= 1; --i)
        putchar(st[i] ^ 48);
}
int main() {
    ffr(n), ffr(m);

    for (register int i = 1; i <= n; ++i) {
        ffr(d[i]), dp[i] = (node) {
            0, 1
        };

        for (register int j = 1; j <= d[i]; ++j)
            ffr(es[i][j]), ++deg[es[i][j]];
    }

    register int l = 1, r = 0;

    for (register int i = 1; i <= m; ++i)
        q[++r] = i, dp[i] = (node) {
        1, 1
    };

    while (l <= r) {
        int u = q[l++];
        node tmp = dp[u];
        ll gg = gcd(tmp.a, d[u]);
        int val = d[u];
        tmp.a /= gg, val /= gg, tmp.b *= val;

        for (register int i = 1; i <= d[u]; ++i) {
            int v = es[u][i];
            dp[v] = dp[v] + tmp;

            if ((--deg[v]) == 0)
                q[++r] = v;
        }
    }

    for (register int i = 1; i <= n; ++i)
        if (d[i] == 0) {
            dp[i].calc();
            ks(dp[i].a);
            putchar(' ');
            ks(dp[i].b);
            putchar('\n');
        }

    return 0;
}

详细

answer.code:2:12: error: expected unqualified-id before ‘__int128’
    2 | #define ll __int128
      |            ^~~~~~~~
answer.code:7:1: note: in expansion of macro ‘ll’
    7 | ll gcd(ll a, ll b) {
      | ^~
answer.code:2:12: error: expected unqualified-id before ‘__int128’
    2 | #define ll __int128
      |            ^~~~~~~~
answer.code:17:5: note: in expansion of macro ‘ll’
   17 |     ll a, b;
      |     ^~
answer.code: In member function ‘node node::operator+(const node&)’:
answer.c...