Skip to content

Commit 155aab3

Browse files
committed
add complete graph testcase to minimum_spanning_tree problem
1 parent 5e7af2c commit 155aab3

4 files changed

Lines changed: 89 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#include <iostream>
2+
#include "random.h"
3+
#include "../params.h"
4+
5+
using namespace std;
6+
7+
struct E {
8+
int from, to, cost;
9+
};
10+
11+
int main(int, char *argv[]) {
12+
long long seed = atoll(argv[1]);
13+
auto gen = Random(seed);
14+
15+
int n = 0;
16+
while((n + 1) * n / 2 <= N_MAX) {
17+
n++;
18+
}
19+
int m = n * (n - 1) / 2;
20+
21+
vector<E> edges;
22+
for (int u = 1; u < n; u++) {
23+
for (int v = 0; v < u; v++) {
24+
int c = gen.uniform(0LL, C_MAX);
25+
edges.push_back({u, v, c});
26+
}
27+
}
28+
29+
auto idx = gen.perm<int>(n);
30+
printf("%d %d\n", n, m);
31+
for (auto e : edges) {
32+
printf("%d %d %d\n", idx[e.from], idx[e.to], e.cost);
33+
}
34+
35+
return 0;
36+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#include <iostream>
2+
#include "random.h"
3+
#include "../params.h"
4+
5+
using namespace std;
6+
7+
struct E {
8+
int from, to, cost;
9+
};
10+
11+
int main(int, char *argv[]) {
12+
long long seed = atoll(argv[1]);
13+
auto gen = Random(seed);
14+
15+
int n = (1 << (5 + seed % 5));
16+
int m = n * (n - 1) / 2;
17+
18+
vector<E> edges;
19+
for (int u = 1; u < n; u++) {
20+
for (int v = 0; v < u; v++) {
21+
int c = gen.uniform(0LL, C_MAX);
22+
edges.push_back({u, v, c});
23+
}
24+
}
25+
26+
auto idx = gen.perm<int>(n);
27+
printf("%d %d\n", n, m);
28+
for (auto e : edges) {
29+
printf("%d %d %d\n", idx[e.from], idx[e.to], e.cost);
30+
}
31+
32+
return 0;
33+
}

graph/minimum_spanning_tree/hash.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
{
2+
"complete_max_00.in": "98d76e11baaaecb5b1693f5d09b7f4de59e2dd1189005144e51e0e312db38c2b",
3+
"complete_max_00.out": "8e895212b1cd76b6054c07570613b685a2ea3048d534fb860516c87a35f6ff0d",
4+
"complete_max_01.in": "8c0132f43d948e38ee2d3a8a0d1092e05be72f358b482ef3ed72b9548c9f59b3",
5+
"complete_max_01.out": "78f00461d124c4f1807d4f291fe6c4cd4bd45d9b7f85caf2bba2c8b1f5a8935e",
6+
"complete_random_00.in": "238b4b4839d83c1bfccbba6de38f3f84d127a013bc23a415506b1a7e5b96cc9f",
7+
"complete_random_00.out": "0abdaf94dfeb432d59b58d340133ea42acafba84bf06b7afcfc5a0a001104051",
8+
"complete_random_01.in": "97067b16752169b3d87e1d81630003e9a2f041225805f2518d973c69b3ad7e0b",
9+
"complete_random_01.out": "f2e7807e4a96eeb6850377f9a0f68b75a4ea1c16717f507584ed3082c1136fb0",
10+
"complete_random_02.in": "c3be8557ba1588ceeb0d3ff33bc52bd199825de879a7e303f0cc2870229abbd6",
11+
"complete_random_02.out": "1076b7e5b2e80c5eefab7b389f2f7329ef4b19945bb2280c8dea6014c1bf45aa",
12+
"complete_random_03.in": "6d713e4b8fbf8756cf529dd98da0165a9516c7c7266b9190087ebbe0cc151f97",
13+
"complete_random_03.out": "c87c472d876ce6438aff1bbd05696439cae53ef91838dfa852c89aef4130eed4",
14+
"complete_random_04.in": "3a8aff5752e42d896b6dccf814dfbd6cc88731365d00d5e48c12f5bf83f3939e",
15+
"complete_random_04.out": "e4bb50738c8a9497bbc5e830e941747ec6b0bc7ef8a9d8a6f3b7e4a3b3ee3a8f",
216
"example_00.in": "020c548c74d1ad61da527d9dd149e5510cba1a30459fe3f933b6ec0b742f87d0",
317
"example_00.out": "ad3c92a1dec31cb7cb05f6f2dfd5c7a1517f73b86a3c7cc1b131a17c0c01dd84",
418
"example_01.in": "4859c57ba64d8088c41b77c192a9535ac0682e0e478848d9a8fd238a2c4b7691",

graph/minimum_spanning_tree/info.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/953"
2020
[[tests]]
2121
name = "star.cpp"
2222
number = 1
23+
[[tests]]
24+
name = "complete_random.cpp"
25+
number = 5
26+
[[tests]]
27+
name = "complete_max.cpp"
28+
number = 2
2329

2430
[params]
2531
N_MAX = 500_000

0 commit comments

Comments
 (0)