QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#112608#6371. Half is Good8BQube#ML 942ms257620kbC++141.7kb2023-06-12 15:41:262023-06-12 15:41:29

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-12 15:41:29]
  • 评测
  • 测评结果:ML
  • 用时:942ms
  • 内存:257620kb
  • [2023-06-12 15:41:26]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define X first
#define Y second
#define pb push_back
#define ALL(v) v.begin(), v.end()
#define SZ(a) ((int)a.size())

unsigned int s;
unsigned int getNext() {
    s = s ^ (s<<13);
    s = s ^ (s>>17);
    s = s ^ (s<<5);
    return s;
}

const int N = 1e7 + 5;
int g[N];
int f(int x) { return g[x] = (g[x] == x ? x : f(g[x])); }
bool mg(int a, int b) {
    a = f(a), b = f(b);
    if (a == b) return false;
    g[a] = b;
    return true;
}

struct Edge { int a, b; ll c; int idx; };

unsigned int ans[N];

int main() {
    ios::sync_with_stdio(0), cin.tie(0);
    int n, m;
    cin >> n >> m >> s;
    vector<Edge> v;
    for (int i = 0; i < m; i++) {
        int a = getNext() % n; 
        int b = getNext() % n; 
        ll w = getNext() / 4;
        w = w * getNext();
        // cerr << a << " " << b << " " << w << endl;
        v.pb({a, b, w, i});
    }
    // vector<int> dt(m);
    // iota(ALL(dt), 0);
    // sort(ALL(dt), [&](const auto &a, const auto &b) { return v[a].c < v[b].c; });
    sort(ALL(v), [&](const auto &a, const auto &b) { return a.c < b.c; });
    for (int i = 0; i < n; i++)
        g[i] = i;
    vector<int> cs;
    int cnt = 0;
    // for (auto idx : dt) {
    //     const auto &e = v[idx]; 
    for (const auto &e : v) {
        if (mg(e.a, e.b)) {
            cnt++;
            int idx = e.idx;
            ans[idx >> 5] |= (1u << (idx & 31));
        }
        cs.pb(cnt);
    }
    int na = (m - 1) / 32 + 1;
    for (int i = 0; i < na; i++)
        cout << ans[i] << " \n"[i + 1 == na];
    // cerr << cnt << " " << fixed << setprecision(5) << (double)cnt / m << endl;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 5508kb

input:

4 7 47

output:

72

result:

ok you found 2 edges (out of 2 edges)

Test #2:

score: 0
Accepted
time: 0ms
memory: 5464kb

input:

1 1 956091059

output:

0

result:

ok you found 0 edges (out of 0 edges)

Test #3:

score: 0
Accepted
time: 1ms
memory: 5444kb

input:

1 10 675265052

output:

0

result:

ok you found 0 edges (out of 0 edges)

Test #4:

score: 0
Accepted
time: 2ms
memory: 5524kb

input:

1 100 649558818

output:

0 0 0 0

result:

ok you found 0 edges (out of 0 edges)

Test #5:

score: 0
Accepted
time: 2ms
memory: 5548kb

input:

1 300 796656507

output:

0 0 0 0 0 0 0 0 0 0

result:

ok you found 0 edges (out of 0 edges)

Test #6:

score: 0
Accepted
time: 2ms
memory: 5496kb

input:

1 1000 570935698

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

result:

ok you found 0 edges (out of 0 edges)

Test #7:

score: 0
Accepted
time: 3ms
memory: 5568kb

input:

1 5000 374761337

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #8:

score: 0
Accepted
time: 1ms
memory: 5584kb

input:

1 10000 705177612

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #9:

score: 0
Accepted
time: 5ms
memory: 8284kb

input:

1 100000 900413157

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #10:

score: 0
Accepted
time: 29ms
memory: 16900kb

input:

1 300000 347539594

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #11:

score: 0
Accepted
time: 100ms
memory: 37164kb

input:

1 1000000 659451863

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #12:

score: 0
Accepted
time: 328ms
memory: 106524kb

input:

1 3000000 415743523

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #13:

score: 0
Accepted
time: 942ms
memory: 257620kb

input:

1 8000000 99180511

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #14:

score: 0
Accepted
time: 102ms
memory: 37016kb

input:

1 999999 929490215

output:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok you found 0 edges (out of 0 edges)

Test #15:

score: -100
Memory Limit Exceeded

input:

1 10000000 278474391

output:


result: