diff --git a/BZOJ/3237/3237.cpp b/BZOJ/3237/3237.cpp new file mode 100644 index 00000000..dbe90cde --- /dev/null +++ b/BZOJ/3237/3237.cpp @@ -0,0 +1,109 @@ +#include +#include +#include +#include +#include +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 1e5 + 5, + M = 2e5 + 5; + +int n, m, q, s[N], d[M]; +std::mt19937 rng(std::random_device{}()); +std::vector> g[N]; +bool vis[N]; + +template +class liner_base : private std::vector { + public: + liner_base() + : std::vector(std::numeric_limits::digits + 1, 0) {} + + bool insert(T w) { + for (int i = std::numeric_limits::digits; i >= 0; --i) { + if (!(w >> i)) continue; + + if (!this->at(i)) { + this->at(i) = w; + + return true; + } + + w ^= this->at(i); + } + + return false; + } + + T query_min(T w) { + for (int i = std::numeric_limits::digits; i >= 0; --i) { + if (!((w >> i) & 1)) continue; + + w ^= this->at(i); + } + + return w; + } +}; + +void dfs(int u, int f) { + vis[u] = true; + + for (auto e : g[u]) { + int v = e.first, + id = e.second; + + if (!vis[v]) { + dfs(v, u); + + s[u] ^= s[v]; + d[id] ^= s[v]; + } else if (v != f && !d[id]) { + d[id] = rng(); + + s[u] ^= d[id]; + s[v] ^= d[id]; + } + } +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n >> m; + + for (int i = 1, u, v; i <= m; i++) { + cin >> u >> v; + + g[u].emplace_back(v, i); + g[v].emplace_back(u, i); + } + + dfs(1, 1); + + cin >> q; + + while (q--) { + int c; + liner_base lb; + bool ans = true; + + cin >> c; + + for (int i = 1, x; i <= c; i++) { + cin >> x; + + ans &= lb.insert(d[x]); + } + + cout << (ans ? "Connected" : "Disconnected") << endl; + } + + return 0; +} diff --git a/BZOJ/3237/data/1.in b/BZOJ/3237/data/1.in new file mode 100644 index 00000000..ab68047a --- /dev/null +++ b/BZOJ/3237/data/1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1db807a2126542fe24e45dcaf47021d8183a599245c22bb5f520178ffa3f7cfb +size 4303220 diff --git a/BZOJ/3237/data/1.out b/BZOJ/3237/data/1.out new file mode 100644 index 00000000..f565708a --- /dev/null +++ b/BZOJ/3237/data/1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c53094d75fdc44a39100dba15aafb9d689eee94ea1e0188b41187fdcee79c88c +size 1101202 diff --git a/BZOJ/3237/data/10.in b/BZOJ/3237/data/10.in new file mode 100644 index 00000000..554ed9ac --- /dev/null +++ b/BZOJ/3237/data/10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d731f2ab74d13d6ee18d14062bba0a025a55a2c269b53b575ae4d4501d60e4cc +size 1282806 diff --git a/BZOJ/3237/data/10.out b/BZOJ/3237/data/10.out new file mode 100644 index 00000000..3243a23d --- /dev/null +++ b/BZOJ/3237/data/10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a885b8930fffe865a27c7f5de24ee34216c1194957e9a41e9d2cc903b02bc84 +size 1000000 diff --git a/BZOJ/3237/data/11.in b/BZOJ/3237/data/11.in new file mode 100644 index 00000000..c7d82cc8 --- /dev/null +++ b/BZOJ/3237/data/11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c77618cc5edf976e2e50473ff0d837dd6aa14af36007d60802dfcf24f28348 +size 2411477 diff --git a/BZOJ/3237/data/11.out b/BZOJ/3237/data/11.out new file mode 100644 index 00000000..3cdbf1df --- /dev/null +++ b/BZOJ/3237/data/11.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0546ab740ef7c4a98d4175cb9fd6c77758a116f6930f1fa7483634b62747fdd +size 1138210 diff --git a/BZOJ/3237/data/12.in b/BZOJ/3237/data/12.in new file mode 100644 index 00000000..b6781284 --- /dev/null +++ b/BZOJ/3237/data/12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e95b4497197262f0774ee3f935310894e62ca59a962e788362fda7e94c3e81e1 +size 2398191 diff --git a/BZOJ/3237/data/12.out b/BZOJ/3237/data/12.out new file mode 100644 index 00000000..5741d2ba --- /dev/null +++ b/BZOJ/3237/data/12.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8250d96a4d5f4f6abb151cc7b259ca39fd9164795731acd46c6180d796143ea7 +size 1148554 diff --git a/BZOJ/3237/data/13.in b/BZOJ/3237/data/13.in new file mode 100644 index 00000000..3c56576f --- /dev/null +++ b/BZOJ/3237/data/13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc8aea1755355c99668043a909c86c43051a3cbb9e56eef21f5a058d0259bce1 +size 2453130 diff --git a/BZOJ/3237/data/13.out b/BZOJ/3237/data/13.out new file mode 100644 index 00000000..f787a2ec --- /dev/null +++ b/BZOJ/3237/data/13.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcf9692dbb35c6692d384f945d0b9d3b8b790d274aef29288ef35b3c1d4c0c90 +size 1101424 diff --git a/BZOJ/3237/data/14.in b/BZOJ/3237/data/14.in new file mode 100644 index 00000000..6d9e5f10 --- /dev/null +++ b/BZOJ/3237/data/14.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:250427711b51a3441722126ac4419e7862426359bd7d0a28157ec200c2ec7b54 +size 1644691 diff --git a/BZOJ/3237/data/14.out b/BZOJ/3237/data/14.out new file mode 100644 index 00000000..6dc07727 --- /dev/null +++ b/BZOJ/3237/data/14.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6053bfff8ca488d839875d52fbfeefe772b3d32f238d03e6a6ceedf2788f0a29 +size 1012174 diff --git a/BZOJ/3237/data/15.in b/BZOJ/3237/data/15.in new file mode 100644 index 00000000..9bd0a9de --- /dev/null +++ b/BZOJ/3237/data/15.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ce8dff0fb9350ac4a5e77d5f63c13e453e0b6e47643dec61cd767f820986c33 +size 2371135 diff --git a/BZOJ/3237/data/15.out b/BZOJ/3237/data/15.out new file mode 100644 index 00000000..ccffe1cf --- /dev/null +++ b/BZOJ/3237/data/15.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f28819ad85f96812d56e65224e01c116f85408a6c5562f88652c1365f564d1cd +size 1180156 diff --git a/BZOJ/3237/data/16.in b/BZOJ/3237/data/16.in new file mode 100644 index 00000000..0e67b200 --- /dev/null +++ b/BZOJ/3237/data/16.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31ab2b5eced0d78a385305b1c78174d1adeb01c855c728d9ae5ac9d97d86ef93 +size 622885 diff --git a/BZOJ/3237/data/16.out b/BZOJ/3237/data/16.out new file mode 100644 index 00000000..2d25daf4 --- /dev/null +++ b/BZOJ/3237/data/16.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fafe6900e27b96b319cd70173fa75d3422b7c221ceaace7ae147e26e0e3dd2c8 +size 1267300 diff --git a/BZOJ/3237/data/17.in b/BZOJ/3237/data/17.in new file mode 100644 index 00000000..98b3537e --- /dev/null +++ b/BZOJ/3237/data/17.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7cb5b7737effed41128cd41e7dc128b9dc837187bb9da10b2da6e4f63a9dc36 +size 1642976 diff --git a/BZOJ/3237/data/17.out b/BZOJ/3237/data/17.out new file mode 100644 index 00000000..c8942ec7 --- /dev/null +++ b/BZOJ/3237/data/17.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ab8b3e0341e52019a27314467e364e81e457e6c733a4049a1c8c223ee0a0055 +size 1000246 diff --git a/BZOJ/3237/data/18.in b/BZOJ/3237/data/18.in new file mode 100644 index 00000000..b273969c --- /dev/null +++ b/BZOJ/3237/data/18.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3dc989bec81f9a7f5b0bd9e219a42698d85423d7ba52a28852139583d084cb45 +size 1571400 diff --git a/BZOJ/3237/data/18.out b/BZOJ/3237/data/18.out new file mode 100644 index 00000000..862bb183 --- /dev/null +++ b/BZOJ/3237/data/18.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f18a331b93afad3ce65438e988d409ffff39cec7e81f8caaa89e5580b5d7a1a4 +size 1030012 diff --git a/BZOJ/3237/data/19.in b/BZOJ/3237/data/19.in new file mode 100644 index 00000000..635c1744 --- /dev/null +++ b/BZOJ/3237/data/19.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:514895cd362c4bbc53c42366b8e25874758c4ef3b3661bf86079e74346a1a752 +size 4267900 diff --git a/BZOJ/3237/data/19.out b/BZOJ/3237/data/19.out new file mode 100644 index 00000000..2d15ddd7 --- /dev/null +++ b/BZOJ/3237/data/19.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c55cfe7626c241249608be636e47a287892d8cffa454124108e55170f148fe88 +size 1106038 diff --git a/BZOJ/3237/data/2.in b/BZOJ/3237/data/2.in new file mode 100644 index 00000000..8578f909 --- /dev/null +++ b/BZOJ/3237/data/2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55a62fe244d6ec8dc127399e49f658892ca939c9dc66692c806c90596b71e687 +size 4160674 diff --git a/BZOJ/3237/data/2.out b/BZOJ/3237/data/2.out new file mode 100644 index 00000000..859742bc --- /dev/null +++ b/BZOJ/3237/data/2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d13484adad7ec40d91c4ddfad9ddbeebb77d6324a1bdaf849fbbab5d6361d69a +size 1126825 diff --git a/BZOJ/3237/data/20.in b/BZOJ/3237/data/20.in new file mode 100644 index 00000000..9ed36587 --- /dev/null +++ b/BZOJ/3237/data/20.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85761f50d00d80399ed173a09f9078745aff48fe8393edca0851c5235db02028 +size 3654328 diff --git a/BZOJ/3237/data/20.out b/BZOJ/3237/data/20.out new file mode 100644 index 00000000..bb30a0ba --- /dev/null +++ b/BZOJ/3237/data/20.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bd985f9808db92388083204c13a7e3699c863b93a63a5b541f89ccb1f37dea1 +size 1295920 diff --git a/BZOJ/3237/data/3.in b/BZOJ/3237/data/3.in new file mode 100644 index 00000000..6e5eefd1 --- /dev/null +++ b/BZOJ/3237/data/3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ac038fdeb73bc963e9a5940dadc285e1ed870e3ea626a5796ac99708c96bcf0 +size 994103 diff --git a/BZOJ/3237/data/3.out b/BZOJ/3237/data/3.out new file mode 100644 index 00000000..722a9911 --- /dev/null +++ b/BZOJ/3237/data/3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b698fd214c0dbddcb98a7c5dfc2640a03580ca4828a3cd5d4ddc647796c72e9 +size 1053082 diff --git a/BZOJ/3237/data/4.in b/BZOJ/3237/data/4.in new file mode 100644 index 00000000..b1427991 --- /dev/null +++ b/BZOJ/3237/data/4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55ad55c10e43eaa784f783770755e5731237dfdf637c77995a9291371a17c98e +size 3663402 diff --git a/BZOJ/3237/data/4.out b/BZOJ/3237/data/4.out new file mode 100644 index 00000000..6ae6c550 --- /dev/null +++ b/BZOJ/3237/data/4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:818a78d16d3528eb916ba6993f7c7ae0f0829c9ff0f79c070c0c841bbc5851f1 +size 1293751 diff --git a/BZOJ/3237/data/5.in b/BZOJ/3237/data/5.in new file mode 100644 index 00000000..7736e226 --- /dev/null +++ b/BZOJ/3237/data/5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b616eca9575be18e704c45c12cb02f92b7815c635ef584d92c15704f956e49f +size 876481 diff --git a/BZOJ/3237/data/5.out b/BZOJ/3237/data/5.out new file mode 100644 index 00000000..1864d812 --- /dev/null +++ b/BZOJ/3237/data/5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:689c9ac11bcda2aef01013f21eea6b3179191b8c47b03d9ae1661cce14ffd62f +size 1019641 diff --git a/BZOJ/3237/data/6.in b/BZOJ/3237/data/6.in new file mode 100644 index 00000000..b50495ae --- /dev/null +++ b/BZOJ/3237/data/6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da451f234bf2f8804011e7fd4e9ba7aeae3771366f31389b948099ccd1237b6 +size 1104478 diff --git a/BZOJ/3237/data/6.out b/BZOJ/3237/data/6.out new file mode 100644 index 00000000..0f467e9d --- /dev/null +++ b/BZOJ/3237/data/6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dc0fb91a82d0c81825f6f61422fa2df9522a24ba84ee9d5b82181723d26b756 +size 1004212 diff --git a/BZOJ/3237/data/7.in b/BZOJ/3237/data/7.in new file mode 100644 index 00000000..a7278ef3 --- /dev/null +++ b/BZOJ/3237/data/7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f7ad5d5e8d1cbfb6e3ccc06a62bcdc0cc7b1b0171591d893d15e6a0e8b9b234 +size 1646556 diff --git a/BZOJ/3237/data/7.out b/BZOJ/3237/data/7.out new file mode 100644 index 00000000..0cbdd091 --- /dev/null +++ b/BZOJ/3237/data/7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d76726d29459a1a96d62308de9e5294967557d3d08943efa75f9d375cfbdae6 +size 1004251 diff --git a/BZOJ/3237/data/8.in b/BZOJ/3237/data/8.in new file mode 100644 index 00000000..fd021bc8 --- /dev/null +++ b/BZOJ/3237/data/8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af4aa6c7369d4b6ea93ad398906db4cb637effb40c293a82a2d239d49a7f2a3a +size 2442614 diff --git a/BZOJ/3237/data/8.out b/BZOJ/3237/data/8.out new file mode 100644 index 00000000..3f1c3bbc --- /dev/null +++ b/BZOJ/3237/data/8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bde584d683b88a366ef44fbf747f4b6cf5a0dc0a4f08d50acf1c9614766050ab +size 1107136 diff --git a/BZOJ/3237/data/9.in b/BZOJ/3237/data/9.in new file mode 100644 index 00000000..057dadd1 --- /dev/null +++ b/BZOJ/3237/data/9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acf31811d762d03c6555180d0af35d98636a7d62cc1effe9a542b303c54df506 +size 1232807 diff --git a/BZOJ/3237/data/9.out b/BZOJ/3237/data/9.out new file mode 100644 index 00000000..94f46edf --- /dev/null +++ b/BZOJ/3237/data/9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7310562f0ab82ce5cf9a121cdfcfb6a9e5672e585739a2facf661b58907758d2 +size 1000006