Skip to content

Commit

Permalink
Merge pull request yosupo06#1151 from maspypy/1124
Browse files Browse the repository at this point in the history
  • Loading branch information
yosupo06 authored May 26, 2024
2 parents 75bcb9d + 238f5ce commit 013b457
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 0 deletions.
51 changes: 51 additions & 0 deletions graph/bipartitematching/gen/issue1124.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#include <vector>
#include <iostream>
#include <algorithm>

#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<pair<int, int> > 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<int> 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;
}
4 changes: 4 additions & 0 deletions graph/bipartitematching/hash.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
3 changes: 3 additions & 0 deletions graph/bipartitematching/info.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 013b457

Please sign in to comment.