QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#197095#5015. 树hos_lyric0 10ms12056kbC++143.0kb2023-10-02 11:19:452023-10-02 11:19:46

Judging History

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

  • [2023-10-02 11:19:46]
  • 评测
  • 测评结果:0
  • 用时:10ms
  • 内存:12056kb
  • [2023-10-02 11:19:45]
  • 提交

answer

#include "tree.h"

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")

#include <random>

mt19937_64 rng(60);

int N;
vector<int> dep, par;
int lca[1010][1010];

int dist(int u, int v) {
  const int l = lca[u][v];
  assert(l);
  return dep[u] + dep[v] - 2 * dep[l];
}

void classify(const vector<int> &us, const vector<int> &vs) {
  if (vs.empty()) return;
  const int usLen = us.size();
  assert(usLen >= 1);
  if (usLen == 1) {
    for (const int v : vs) par[v] = us[0];
  } else if (usLen == 2) {
    for (const int v : vs) par[v] = us[(ask(us[0], {v}) == 1) ? 0 : 1];
  } else {
    vector<int> fs(usLen, 0);
    for (int j = 0; j < usLen / 2; ++j) fs[j] = 1;
    shuffle(fs.begin(), fs.end(), rng);
    vector<int> ws;
    for (int j = 0; j < usLen; ++j) if (fs[j]) ws.push_back(us[j]);
    map<int, vector<int>> uss, vss;
    for (const int u : us) {
      int sum = 0;
      for (const int w : ws) sum += dist(u, w);
      uss[sum].push_back(u);
    }
    for (const int v : vs) vss[ask(v, ws)].push_back(v);
    for (const auto &kv : vss) {
      auto it = uss.find(kv.first - (int)ws.size());
      assert(it != uss.end());
      classify(it->second, kv.second);
    }
  }
}

void solver(int N_, int, int) {
  N = N_;
  int R = rng() % N + 1;
  dep.assign(N + 1, 0);
  for (int u = 1; u <= N; ++u) if (R != u) dep[u] = ask(R, {u});
  vector<vector<int>> layers(N);
  for (int u = 1; u <= N; ++u) layers[dep[u]].push_back(u);
// cerr<<"R = "<<R<<", dep = "<<dep<<", layers = "<<layers<<endl;
  par.assign(N + 1, 0);
  lca[R][R] = 1;
  for (int d = 1; d < N; ++d) {
    classify(layers[d - 1], layers[d]);
    for (const int u : layers[d]) for (const int v : layers[d]) {
      lca[u][v] = (u == v) ? u : lca[par[u]][par[v]];
    }
  }
  for (int u = 1; u <= N; ++u) if (R != u) answer(par[u], u);
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 3
Accepted
time: 7ms
memory: 12016kb

input:

1000 500000 500000
1 2
2 3
2 4
2 5
2 6
3 7
2 8
5 9
5 10
9 11
2 12
9 13
4 14
5 15
12 16
5 17
4 18
4 19
13 20
9 21
19 22
7 23
6 24
14 25
2 26
10 27
14 28
21 29
17 30
8 31
15 32
9 33
22 34
24 35
20 36
6 37
12 38
19 39
31 40
35 41
25 42
11 43
8 44
9 45
12 46
26 47
10 48
6 49
27 50
39 51
33 52
6 53
43 54...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #2:

score: 0
Accepted
time: 7ms
memory: 11808kb

input:

1000 500000 500000
1 2
1 3
1 4
4 5
1 6
2 7
1 8
2 9
3 10
4 11
5 12
11 13
9 14
13 15
10 16
10 17
8 18
9 19
13 20
19 21
17 22
19 23
23 24
24 25
22 26
18 27
21 28
22 29
26 30
24 31
30 32
23 33
28 34
29 35
32 36
36 37
32 38
35 39
34 40
40 41
40 42
42 43
42 44
40 45
40 46
40 47
46 48
39 49
49 50
48 51
50 ...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #3:

score: 0
Accepted
time: 9ms
memory: 11720kb

input:

1000 500000 500000
498 209
498 647
498 776
498 8
498 382
498 181
498 644
498 331
498 516
498 197
498 630
498 693
498 577
498 572
498 393
498 638
498 94
498 847
498 273
498 535
498 703
498 176
498 605
498 214
498 610
498 416
498 928
498 470
498 753
498 182
498 294
498 514
498 831
498 386
498 935
498 ...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #4:

score: 0
Accepted
time: 7ms
memory: 11808kb

input:

1000 500000 500000
1 2
1 3
1 4
1 5
4 6
4 7
7 8
4 9
3 10
5 11
4 12
9 13
12 14
7 15
14 16
9 17
16 18
9 19
13 20
17 21
17 22
18 23
23 24
23 25
18 26
22 27
18 28
25 29
21 30
29 31
31 32
28 33
32 34
26 35
31 36
27 37
29 38
30 39
33 40
38 41
41 42
42 43
43 44
35 45
41 46
43 47
43 48
47 49
45 50
46 51
42 5...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #5:

score: 0
Accepted
time: 8ms
memory: 11788kb

input:

1000 500000 500000
1 2
1 3
1 4
1 5
2 6
1 7
1 8
1 9
1 10
1 11
1 12
2 13
1 14
2 15
2 16
2 17
1 18
2 19
2 20
2 21
2 22
1 23
1 24
1 25
2 26
2 27
2 28
2 29
2 30
1 31
2 32
1 33
2 34
1 35
1 36
1 37
1 38
2 39
1 40
1 41
1 42
2 43
2 44
1 45
1 46
2 47
1 48
2 49
1 50
2 51
2 52
1 53
1 54
1 55
1 56
1 57
2 58
1 59...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #6:

score: -3
Runtime Error

input:

1000 500000 500000
775 723
775 587
775 405
775 383
775 154
775 567
775 561
775 114
775 894
775 79
775 229
775 388
775 165
775 240
775 358
775 287
775 560
775 578
775 220
775 222
775 214
775 86
775 94
775 997
775 531
775 476
775 68
775 838
775 135
775 851
775 478
775 588
775 136
775 689
775 396
775 8...

output:

Unauthorized output

result:


Subtask #2:

score: 0
Runtime Error

Test #11:

score: 17
Accepted
time: 0ms
memory: 10136kb

input:

100 3000 40000
66 95
66 60
66 93
66 69
66 82
66 24
66 64
66 84
66 42
66 22
66 67
66 54
66 90
66 26
66 41
66 18
66 43
66 68
66 36
66 88
66 33
66 29
66 79
66 6
66 48
66 47
66 8
66 38
66 61
69 97
64 30
38 86
88 14
18 10
54 81
88 25
29 2
18 21
95 46
42 80
93 91
61 62
68 35
47 23
69 17
93 28
18 31
61 70
...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #12:

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

input:

100 3000 40000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31
16 32
16 33
17 34
17 35
18 36
18 37
19 38
19 39
20 40
20 41
21 42
21 43
22 44
22 45
23 46
23 47
24 48
24 49
25 50
25 51
26 52
26 53...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #13:

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

input:

100 3000 40000
1 2
2 3
3 4
3 5
5 6
6 7
4 8
7 9
1 10
4 11
3 12
7 13
1 14
1 15
7 16
3 17
4 18
7 19
9 20
1 21
8 22
10 23
6 24
6 25
2 26
10 27
7 28
5 29
5 30
8 31
4 32
4 33
10 34
2 35
8 36
9 37
3 38
6 39
3 40
8 41
9 42
6 43
10 44
8 45
5 46
8 47
8 48
2 49
8 50
8 51
3 52
1 53
3 54
5 55
5 56
8 57
3 58
10 5...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #14:

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

input:

100 3000 40000
13 50
17 13
62 17
5 62
74 5
83 74
98 83
37 98
80 37
23 80
87 23
27 87
40 27
95 40
52 95
54 52
67 54
42 67
18 42
34 18
81 34
59 81
12 59
30 12
64 30
15 64
92 15
61 92
1 61
72 1
16 72
3 16
48 3
31 48
41 31
77 41
93 77
33 93
96 33
53 96
28 53
90 28
25 90
26 25
57 55
85 57
45 85
20 45
22 ...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #15:

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

input:

100 3000 40000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31
16 32
16 33
17 34
17 35
18 36
18 37
19 38
19 39
20 40
20 41
21 42
21 43
22 44
22 45
23 46
23 47
24 48
24 49
25 50
25 51
26 52
26 53...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #16:

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

input:

100 3000 40000
1 2
2 3
3 4
3 5
5 6
6 7
6 8
8 9
9 10
10 11
10 12
12 13
12 14
14 15
15 16
16 17
17 18
18 19
19 20
20 21
21 22
21 23
23 24
24 25
25 26
25 27
26 28
28 29
28 30
30 31
30 32
32 33
33 34
33 35
35 36
36 37
36 38
38 39
39 40
39 41
41 42
41 43
42 44
43 45
44 46
46 47
47 48
48 49
48 50
49 51
50...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #17:

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

input:

100 3000 40000
1 2
1 3
1 4
2 5
1 6
1 7
1 8
1 9
1 10
1 11
1 12
1 13
2 14
1 15
1 16
2 17
2 18
2 19
1 20
2 21
2 22
2 23
1 24
2 25
2 26
2 27
2 28
2 29
1 30
1 31
2 32
2 33
1 34
1 35
1 36
1 37
2 38
2 39
2 40
1 41
2 42
2 43
1 44
2 45
2 46
2 47
2 48
1 49
2 50
1 51
1 52
1 53
1 54
1 55
1 56
1 57
1 58
1 59
2 6...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #18:

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

input:

100 3000 40000
1 2
2 3
3 4
4 5
2 6
1 7
7 8
7 9
1 10
4 11
7 12
1 13
5 14
5 15
4 16
7 17
9 18
5 19
10 20
8 21
1 22
1 23
6 24
5 25
2 26
7 27
1 28
7 29
9 30
10 31
7 32
3 33
8 34
10 35
8 36
10 37
2 38
7 39
6 40
9 41
8 42
7 43
9 44
3 45
2 46
5 47
10 48
2 49
6 50
4 51
6 52
5 53
8 54
5 55
6 56
6 57
7 58
3 5...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #19:

score: -17
Runtime Error

input:

100 3000 40000
1 2
1 3
3 4
3 5
5 6
5 7
6 8
7 9
8 10
10 11
10 12
12 13
13 14
13 15
15 16
16 17
16 18
17 19
18 20
19 21
21 22
22 23
23 24
24 25
24 26
25 27
26 28
27 29
28 30
30 31
30 32
31 33
33 34
34 35
34 36
35 37
37 38
38 39
39 40
39 41
41 42
42 43
43 44
44 45
45 46
46 47
47 48
48 49
48 50
49 51
50...

output:

Unauthorized output

result:


Subtask #3:

score: 0
Runtime Error

Test #111:

score: 0
Runtime Error

input:

1000 50000 3000000
126 207
937 126
615 937
837 615
500 837
588 500
505 588
353 505
60 353
904 60
656 904
685 656
460 685
614 460
551 614
537 551
858 537
596 858
9 596
738 9
918 738
322 918
940 322
859 940
113 859
110 113
312 110
995 312
443 995
246 443
257 246
238 257
999 238
885 999
976 885
330 976...

output:

Unauthorized output

result:


Subtask #4:

score: 0
Runtime Error

Test #211:

score: 60
Accepted
time: 8ms
memory: 11732kb

input:

990 8500 300000
1 2
1 3
1 4
1 5
2 6
2 7
2 8
3 9
3 10
3 11
4 12
4 13
4 14
5 15
5 16
5 17
6 18
6 19
6 20
7 21
7 22
7 23
8 24
8 25
8 26
9 27
9 28
9 29
10 30
10 31
10 32
11 33
11 34
11 35
12 36
12 37
12 38
13 39
13 40
13 41
14 42
14 43
14 44
15 45
15 46
15 47
16 48
16 49
16 50
17 51
17 52
17 53
18 54
18...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #212:

score: 0
Accepted
time: 10ms
memory: 11756kb

input:

992 8500 300000
1 2
2 3
3 4
4 5
3 6
5 7
7 8
3 9
3 10
2 11
8 12
4 13
4 14
9 15
11 16
5 17
5 18
7 19
12 20
5 21
5 22
10 23
9 24
23 25
22 26
11 27
21 28
28 29
23 30
19 31
5 32
12 33
9 34
11 35
3 36
19 37
10 38
33 39
12 40
12 41
38 42
31 43
25 44
6 45
5 46
36 47
23 48
28 49
31 50
28 51
25 52
5 53
25 54
...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #213:

score: 0
Accepted
time: 7ms
memory: 11808kb

input:

999 8500 300000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31
16 32
16 33
17 34
17 35
18 36
18 37
19 38
19 39
20 40
20 41
21 42
21 43
22 44
22 45
23 46
23 47
24 48
24 49
25 50
25 51
26 52
26 5...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #214:

score: 0
Accepted
time: 7ms
memory: 11764kb

input:

995 8500 300000
1 2
1 3
2 4
1 5
1 6
2 7
7 8
3 9
6 10
9 11
2 12
1 13
9 14
4 15
9 16
13 17
13 18
14 19
6 20
18 21
21 22
14 23
12 24
19 25
9 26
26 27
16 28
28 29
7 30
14 31
1 32
25 33
32 34
5 35
8 36
22 37
19 38
15 39
13 40
27 41
25 42
18 43
12 44
14 45
8 46
36 47
33 48
45 49
46 50
44 51
47 52
15 53
2 ...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #215:

score: 0
Accepted
time: 4ms
memory: 12056kb

input:

999 8500 300000
1 2
2 3
3 4
4 5
2 6
5 7
4 8
8 9
6 10
1 11
7 12
6 13
2 14
2 15
10 16
10 17
7 18
9 19
4 20
4 21
7 22
1 23
4 24
8 25
1 26
8 27
5 28
6 29
3 30
8 31
6 32
8 33
3 34
10 35
9 36
5 37
9 38
3 39
10 40
7 41
6 42
8 43
7 44
2 45
3 46
10 47
2 48
2 49
5 50
6 51
1 52
2 53
3 54
1 55
7 56
5 57
3 58
10...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #216:

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

input:

993 8500 300000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31
16 32
16 33
17 34
17 35
18 36
18 37
19 38
19 39
20 40
20 41
21 42
21 43
22 44
22 45
23 46
23 47
24 48
24 49
25 50
25 51
26 52
26 5...

output:

areawavesuitbannerresortfatplasterdeclarationthesearejustrandomwords

result:

ok Orz..Orz..Orz..Orz..Orz

Test #217:

score: -60
Runtime Error

input:

995 8500 300000
1 2
1 3
2 4
2 5
3 6
3 7
4 8
4 9
5 10
5 11
6 12
6 13
7 14
7 15
8 16
8 17
9 18
9 19
10 20
10 21
11 22
11 23
12 24
12 25
13 26
13 27
14 28
14 29
15 30
15 31
16 32
16 33
17 34
17 35
18 36
18 37
19 38
19 39
20 40
20 41
21 42
21 43
22 44
22 45
23 46
23 47
24 48
24 49
25 50
25 51
26 52
26 5...

output:

Unauthorized output

result: