From 025ed639042875bb5ed7c884e970badc54db5b3a Mon Sep 17 00:00:00 2001 From: maspypy Date: Sun, 12 May 2024 20:32:55 +0900 Subject: [PATCH] add test --- graph/bipartitematching/gen/issue1124.cpp | 51 +++++++++++++++++++++++ graph/bipartitematching/hash.json | 4 ++ graph/bipartitematching/info.toml | 3 ++ 3 files changed, 58 insertions(+) create mode 100644 graph/bipartitematching/gen/issue1124.cpp diff --git a/graph/bipartitematching/gen/issue1124.cpp b/graph/bipartitematching/gen/issue1124.cpp new file mode 100644 index 000000000..e26f5cb6a --- /dev/null +++ b/graph/bipartitematching/gen/issue1124.cpp @@ -0,0 +1,51 @@ +#include +#include +#include + +#include "random.h" + +using namespace std; + +int main(int, char* argv[]) { + long long seed = atoll(argv[1]); + auto gen = Random(seed); + + int B = 12; + vector > edges; + for (int i = 0; i <= B; i++) { + for (int j = 0; j < (1 << B); j++) { + edges.push_back({(i << B) + j, (i << B) + j}); + } + } + for (int i = 0; i < B; i++) { + for (int j = 0; j < (1 << B); j++) { + edges.push_back({((i + 1) << B) + j, (i << B) + j}); + edges.push_back({((i + 1) << B) + (j ^ (1 << i)), (i << B) + j}); + } + } + for (int i = 0; i < (1 << B); i++) { + edges.push_back({((B + 1) << B) + i, (B << B) + i}); + } + for (int i = 0; i < (1 << B); i++) { + edges.push_back({i, ((B + 1) << B) + i}); + } + + int l = (B + 2) << B; + int r = (B + 2) << B; + int m = edges.size(); + + if (seed % 2 == 0) { + // shuffle + vector new_idx_L(l), new_idx_R(r); + for (int i = 0; i < l; ++i) new_idx_L[i] = i; + for (int i = 0; i < r; ++i) new_idx_R[i] = i; + gen.shuffle(edges.begin(), edges.end()); + gen.shuffle(new_idx_L.begin(), new_idx_L.end()); + gen.shuffle(new_idx_R.begin(), new_idx_R.end()); + for (auto& [a, b]: edges) a = new_idx_L[a], b = new_idx_R[b]; + } + + printf("%d %d %d\n", l, r, m); + for (auto edge: edges) { printf("%d %d\n", edge.first, edge.second); } + return 0; +} \ No newline at end of file diff --git a/graph/bipartitematching/hash.json b/graph/bipartitematching/hash.json index 78cc1638d..39af56b00 100644 --- a/graph/bipartitematching/hash.json +++ b/graph/bipartitematching/hash.json @@ -5,6 +5,10 @@ "cycle_01.out": "61bf446b23a4128b7939650819761c10e1e111fdf644d440a2a8fc58f923905b", "example_00.in": "8e14807ee203e49dde929bb92a04f1536a744b10e6dfd233b68fc4f19db57a71", "example_00.out": "d316870aa467c52e802c0b1c7bbf0a301ee0be2b5f6805859910d36727933338", + "issue1124_00.in": "101e86d70dbf1c1d4c705d3f3ddd6cc9c842826d9d6af9321f3c0e04a1d05c22", + "issue1124_00.out": "63c1337a04ad9baefa12358d9f8950e393d6a11b48f8ab9d9a3e1338f235c567", + "issue1124_01.in": "5ccbd32d26468cee0d7bf14e06dc913eef238dd4fed31ab95adbb0edebb6758e", + "issue1124_01.out": "55640b5c62b937e1c25b88039b5c2cc496e51359881ab9302d939a8bf1a79760", "kuhn_killer_00.in": "e8ab878ceaa36de73750dc9599080d7864585c77fd1546cf9431223d7b64e790", "kuhn_killer_00.out": "c982d8a1164805c36b2bada6b78835990b131177c2344c4be9a4d85edf94dbfe", "line_00.in": "918e562d05cac133df5f6284b257b04c4edf25ab3c732f49aa11e13b648f9c54", diff --git a/graph/bipartitematching/info.toml b/graph/bipartitematching/info.toml index 40ee935d8..50ee99f12 100644 --- a/graph/bipartitematching/info.toml +++ b/graph/bipartitematching/info.toml @@ -29,6 +29,9 @@ forum = "https://github.com/yosupo06/library-checker-problems/issues/37" [[tests]] name = "many_paths.cpp" number = 3 +[[tests]] + name = "issue1124.cpp" + number = 2 [params] L_MAX = 100_000