diff --git a/BZOJ/2069/2069.cpp b/BZOJ/2069/2069.cpp new file mode 100644 index 00000000..33f7d1fb --- /dev/null +++ b/BZOJ/2069/2069.cpp @@ -0,0 +1,96 @@ +#include +#include +#include +#include +#include +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int INF = 0x3f3f3f3f; + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + int n, m, ans = INF; + + cin >> n >> m; + + int s = 0, t = n + 1, size = t + 1; + std::vector> edges(m); + + for (auto& e : edges) { + cin >> std::get<0>(e) >> std::get<1>(e) >> std::get<2>(e) >> std::get<3>(e); + } + + for (int k = 0; k <= std::__lg(n); k++) { + std::vector>> g(size); + + for (auto& e : edges) { + int u, v, a, b; + + std::tie(u, v, a, b) = e; + + if (u == 1) { + if (v & (1 << k)) { + g[s].emplace_back(v, a); + g[v].emplace_back(s, b); + } else { + g[v].emplace_back(t, b); + g[t].emplace_back(v, a); + } + } else if (v == 1) { + if (u & (1 << k)) { + g[s].emplace_back(u, b); + g[u].emplace_back(s, a); + } else { + g[u].emplace_back(t, a); + g[t].emplace_back(u, b); + } + } else { + g[u].emplace_back(v, a); + g[v].emplace_back(u, b); + } + } + + std::function dijkstra = [&](int s, int t) -> int { + std::vector dist(size, INF); + std::vector vis(size); + std::priority_queue, std::vector>, std::greater<>> q; + + q.emplace(0, s); + dist[s] = 0; + + while (!q.empty()) { + int u = q.top().second; + q.pop(); + + if (vis[u]) continue; + vis[u] = true; + + for (auto e : g[u]) { + int v = e.first, + w = e.second; + + if (dist[v] > dist[u] + w) { + dist[v] = dist[u] + w; + + q.emplace(dist[v], v); + } + } + } + + return dist[t]; + }; + + ans = std::min({ans, dijkstra(s, t), dijkstra(t, s)}); + } + + cout << ans << endl; + + return 0; +} diff --git a/BZOJ/2069/data/1.in b/BZOJ/2069/data/1.in new file mode 100644 index 00000000..4efbb447 --- /dev/null +++ b/BZOJ/2069/data/1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9934ee87f5b1404c1b0dd997484f6529e35ad696e7d23617e73dd3c86bffe4be +size 155 diff --git a/BZOJ/2069/data/1.out b/BZOJ/2069/data/1.out new file mode 100644 index 00000000..5cb3748c --- /dev/null +++ b/BZOJ/2069/data/1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae0217ec050e514855a3d01d6e28963cc4c99ffc77620143fd36c361324367b4 +size 5 diff --git a/BZOJ/2069/data/10.in b/BZOJ/2069/data/10.in new file mode 100644 index 00000000..c4da21dd --- /dev/null +++ b/BZOJ/2069/data/10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:192eb8e1bb7b97832237dc57c3a66816db702f9b50eedbc91d57bb9188f18ae9 +size 96637 diff --git a/BZOJ/2069/data/10.out b/BZOJ/2069/data/10.out new file mode 100644 index 00000000..53d761c2 --- /dev/null +++ b/BZOJ/2069/data/10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f79f9237e84f3bc9fcab7487d4b24f8aeeb4ed539fcaecbfe32b0be8528c5dcd +size 7 diff --git a/BZOJ/2069/data/11.in b/BZOJ/2069/data/11.in new file mode 100644 index 00000000..3a3590b4 --- /dev/null +++ b/BZOJ/2069/data/11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c262316d21d6a06f8aabe88bf96ae94c2f6a944a9499436e88320a8117c30c53 +size 162 diff --git a/BZOJ/2069/data/11.out b/BZOJ/2069/data/11.out new file mode 100644 index 00000000..e930f4f1 --- /dev/null +++ b/BZOJ/2069/data/11.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc9f23a77ecea60b29786c934ac6c3f8fbe766405b3dc3f2b4b02679be56ba88 +size 6 diff --git a/BZOJ/2069/data/12.in b/BZOJ/2069/data/12.in new file mode 100644 index 00000000..4df51fcc --- /dev/null +++ b/BZOJ/2069/data/12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a000881c431563e4d59f2ecf715ffb43b4ac10e67da9075df01efe89411f3970 +size 38 diff --git a/BZOJ/2069/data/12.out b/BZOJ/2069/data/12.out new file mode 100644 index 00000000..ca267b30 --- /dev/null +++ b/BZOJ/2069/data/12.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1121cfccd5913f0a63fec40a6ffd44ea64f9dc135c66634ba001d10bcf4302a2 +size 2 diff --git a/BZOJ/2069/data/13.in b/BZOJ/2069/data/13.in new file mode 100644 index 00000000..f09212db --- /dev/null +++ b/BZOJ/2069/data/13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e40adc5251951c8a520905a81439c03927691e30cf44a34b9199b481aa8880 +size 879 diff --git a/BZOJ/2069/data/13.out b/BZOJ/2069/data/13.out new file mode 100644 index 00000000..566ecb94 --- /dev/null +++ b/BZOJ/2069/data/13.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02e6858c484e19864c7eb83ed05b398d2470a0c78c2ba90a7761b2bd6f3f1156 +size 6 diff --git a/BZOJ/2069/data/14.in b/BZOJ/2069/data/14.in new file mode 100644 index 00000000..79cf9d1b --- /dev/null +++ b/BZOJ/2069/data/14.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87e58e7e2c8fb310bfb937541c08f1e32bced838018d83bd7d8dd67263aedf4a +size 31297 diff --git a/BZOJ/2069/data/14.out b/BZOJ/2069/data/14.out new file mode 100644 index 00000000..ea00f4cb --- /dev/null +++ b/BZOJ/2069/data/14.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6edc21b6621379f6ba6b0c31a75044a6a0dc11746064237204c0c1716227fd33 +size 4 diff --git a/BZOJ/2069/data/15.in b/BZOJ/2069/data/15.in new file mode 100644 index 00000000..7e2b8d35 --- /dev/null +++ b/BZOJ/2069/data/15.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbef00f6ae444d1a3ce3a42f0040820ae88bbe0190d89ddf6bd4132a9c4e1684 +size 181509 diff --git a/BZOJ/2069/data/15.out b/BZOJ/2069/data/15.out new file mode 100644 index 00000000..3d08e48f --- /dev/null +++ b/BZOJ/2069/data/15.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30a38555d237ac93dc13075da7f8e42a590845ceda754324871a01c73d36e644 +size 5 diff --git a/BZOJ/2069/data/2.in b/BZOJ/2069/data/2.in new file mode 100644 index 00000000..f12a4277 --- /dev/null +++ b/BZOJ/2069/data/2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d7b0319cfba9035620c7b4a2e0b511e707f6f72d7d0ed6f86163b3549087a30 +size 67796 diff --git a/BZOJ/2069/data/2.out b/BZOJ/2069/data/2.out new file mode 100644 index 00000000..bdfe133b --- /dev/null +++ b/BZOJ/2069/data/2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84b9399ba1ce23f356e882a473805faf9794dc028784335029fadc1a74909339 +size 5 diff --git a/BZOJ/2069/data/3.in b/BZOJ/2069/data/3.in new file mode 100644 index 00000000..6d71ef76 --- /dev/null +++ b/BZOJ/2069/data/3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca62da25a0b0a8214f79b8b81f658fcdf3b2d055f8fa7cd4089c6233d0e6731f +size 12014 diff --git a/BZOJ/2069/data/3.out b/BZOJ/2069/data/3.out new file mode 100644 index 00000000..f4de032f --- /dev/null +++ b/BZOJ/2069/data/3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd3d266d2ca3f0f07693cb67ffd72ca595019fcb51ca2fdc752e1a31a2173d4b +size 5 diff --git a/BZOJ/2069/data/4.in b/BZOJ/2069/data/4.in new file mode 100644 index 00000000..d6447215 --- /dev/null +++ b/BZOJ/2069/data/4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9de860facf7bc71b784ba25e50f913553d2e76a101cc03d66e3aefb73f924151 +size 119 diff --git a/BZOJ/2069/data/4.out b/BZOJ/2069/data/4.out new file mode 100644 index 00000000..cb90f684 --- /dev/null +++ b/BZOJ/2069/data/4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06e9d52c1720fca412803e3b07c4b228ff113e303f4c7ab94665319d832bbfb7 +size 2 diff --git a/BZOJ/2069/data/5.in b/BZOJ/2069/data/5.in new file mode 100644 index 00000000..d2d8b5bd --- /dev/null +++ b/BZOJ/2069/data/5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdf5b309a7c0251036e86b42b91d528262d91d173ae89c194acd93fd287a6e0c +size 28 diff --git a/BZOJ/2069/data/5.out b/BZOJ/2069/data/5.out new file mode 100644 index 00000000..cb90f684 --- /dev/null +++ b/BZOJ/2069/data/5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06e9d52c1720fca412803e3b07c4b228ff113e303f4c7ab94665319d832bbfb7 +size 2 diff --git a/BZOJ/2069/data/6.in b/BZOJ/2069/data/6.in new file mode 100644 index 00000000..43050cb5 --- /dev/null +++ b/BZOJ/2069/data/6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d630d074568f45a1bdcce17328b00de89adc2182ad2a82cd4b81b5e2f07ce081 +size 193240 diff --git a/BZOJ/2069/data/6.out b/BZOJ/2069/data/6.out new file mode 100644 index 00000000..d13e890f --- /dev/null +++ b/BZOJ/2069/data/6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d8ceed196eab180dba77b18477daea43f878bf9edafdf3edde5b2e43e1715c +size 8 diff --git a/BZOJ/2069/data/7.in b/BZOJ/2069/data/7.in new file mode 100644 index 00000000..8d24a489 --- /dev/null +++ b/BZOJ/2069/data/7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68f8ea14c169c17abd77c378f864e81b058990a65c1982db8a07dda208dfbc83 +size 180497 diff --git a/BZOJ/2069/data/7.out b/BZOJ/2069/data/7.out new file mode 100644 index 00000000..9016d78d --- /dev/null +++ b/BZOJ/2069/data/7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb6345624787f2ca96d44e59546d084ae429549d7b2aa64b055739bc72a3c08b +size 4 diff --git a/BZOJ/2069/data/8.in b/BZOJ/2069/data/8.in new file mode 100644 index 00000000..72992788 --- /dev/null +++ b/BZOJ/2069/data/8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1371023d548d42dcc8cda4565497e792f6dd040d119b3b7c3c97d46d16edfae7 +size 183422 diff --git a/BZOJ/2069/data/8.out b/BZOJ/2069/data/8.out new file mode 100644 index 00000000..c2317ccb --- /dev/null +++ b/BZOJ/2069/data/8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fd757864954402ea3255395dc50ac28b24b7c00ed1c032b420d3e70945c2e20 +size 4 diff --git a/BZOJ/2069/data/9.in b/BZOJ/2069/data/9.in new file mode 100644 index 00000000..47657374 --- /dev/null +++ b/BZOJ/2069/data/9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49d7efc397bde83cb791ca99544113415bd639adb585dcac8cea973a34241cf0 +size 89127 diff --git a/BZOJ/2069/data/9.out b/BZOJ/2069/data/9.out new file mode 100644 index 00000000..4e9a143b --- /dev/null +++ b/BZOJ/2069/data/9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b6ea96fb508b6dfc3238c5d4fdff89fc81a27836f2dcd65f4e0d6967696dd6b +size 4