From db8ac7796300f594bd098cca55048b4b4f1735a5 Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Thu, 22 Dec 2022 21:45:14 +0800 Subject: [PATCH] =?UTF-8?q?2976.=20[Poi2002]=E5=87=BA=E5=9C=88=E6=B8=B8?= =?UTF-8?q?=E6=88=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://hydro.ac/d/bzoj/record/63a45f32cf75a716a1673915 --- BZOJ/2976/2976.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++ BZOJ/2976/data/1.in | 3 ++ BZOJ/2976/data/1.out | 3 ++ BZOJ/2976/data/10.in | 3 ++ BZOJ/2976/data/10.out | 3 ++ BZOJ/2976/data/11.in | 3 ++ BZOJ/2976/data/11.out | 3 ++ BZOJ/2976/data/12.in | 3 ++ BZOJ/2976/data/12.out | 3 ++ BZOJ/2976/data/13.in | 3 ++ BZOJ/2976/data/13.out | 3 ++ BZOJ/2976/data/2.in | 3 ++ BZOJ/2976/data/2.out | 3 ++ BZOJ/2976/data/3.in | 3 ++ BZOJ/2976/data/3.out | 3 ++ BZOJ/2976/data/4.in | 3 ++ BZOJ/2976/data/4.out | 3 ++ BZOJ/2976/data/5.in | 3 ++ BZOJ/2976/data/5.out | 3 ++ BZOJ/2976/data/6.in | 3 ++ BZOJ/2976/data/6.out | 3 ++ BZOJ/2976/data/7.in | 3 ++ BZOJ/2976/data/7.out | 3 ++ BZOJ/2976/data/8.in | 3 ++ BZOJ/2976/data/8.out | 3 ++ BZOJ/2976/data/9.in | 3 ++ BZOJ/2976/data/9.out | 3 ++ 27 files changed, 146 insertions(+) create mode 100644 BZOJ/2976/2976.cpp create mode 100644 BZOJ/2976/data/1.in create mode 100644 BZOJ/2976/data/1.out create mode 100644 BZOJ/2976/data/10.in create mode 100644 BZOJ/2976/data/10.out create mode 100644 BZOJ/2976/data/11.in create mode 100644 BZOJ/2976/data/11.out create mode 100644 BZOJ/2976/data/12.in create mode 100644 BZOJ/2976/data/12.out create mode 100644 BZOJ/2976/data/13.in create mode 100644 BZOJ/2976/data/13.out create mode 100644 BZOJ/2976/data/2.in create mode 100644 BZOJ/2976/data/2.out create mode 100644 BZOJ/2976/data/3.in create mode 100644 BZOJ/2976/data/3.out create mode 100644 BZOJ/2976/data/4.in create mode 100644 BZOJ/2976/data/4.out create mode 100644 BZOJ/2976/data/5.in create mode 100644 BZOJ/2976/data/5.out create mode 100644 BZOJ/2976/data/6.in create mode 100644 BZOJ/2976/data/6.out create mode 100644 BZOJ/2976/data/7.in create mode 100644 BZOJ/2976/data/7.out create mode 100644 BZOJ/2976/data/8.in create mode 100644 BZOJ/2976/data/8.out create mode 100644 BZOJ/2976/data/9.in create mode 100644 BZOJ/2976/data/9.out diff --git a/BZOJ/2976/2976.cpp b/BZOJ/2976/2976.cpp new file mode 100644 index 00000000..93c5acdc --- /dev/null +++ b/BZOJ/2976/2976.cpp @@ -0,0 +1,68 @@ +#include +#include + +using std::cin; +using std::cout; +const char endl = '\n'; + +const int N = 25; + +int n, a[N], p[N], d[N], m[N]; + +long long exgcd(long long a, long long b, long long& x, long long& y) { + if (!b) { + x = 1; + y = 0; + return a; + } + + long long g = exgcd(b, a % b, y, x); + y -= a / b * x; + return g; +} + +int main() { + std::ios::sync_with_stdio(false); + cin.tie(nullptr); + + cin >> n; + + for (int i = 1; i <= n; i++) { + cin >> a[i]; + + p[a[i]] = i; + } + + for (int i = 1; i <= n; i++) { + for (int j = p[i - 1]; j != p[i]; j = j == n ? 1 : j + 1) { + if (a[j] > i) d[i]++; + } + + m[i] = n - i + 1; + d[i] = (d[i] + 1) % m[i]; + } + + long long res = d[1], lcm = m[1]; + for (int i = 2; i <= n; i++) { + long long x, y, + g = exgcd(lcm, m[i], x, y), + c = ((d[i] - res) % m[i] + m[i]) % m[i], + m1 = m[i] / g, + m2 = lcm / g * m[i]; + + if (c % g) { + cout << "NIE" << endl; + + exit(0); + } + + x = (x % m[i] + m[i]) % m[i]; + x = (x * c / g % m1 + m1) % m1; + res = ((lcm * x + res) % m2 + m2) % m2; + lcm = m2; + } + + cout << (res ? res : lcm) << endl; + + return 0; +} diff --git a/BZOJ/2976/data/1.in b/BZOJ/2976/data/1.in new file mode 100644 index 00000000..d73da3b0 --- /dev/null +++ b/BZOJ/2976/data/1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c31f9fcd596e10540da808d5b1d728d610b3bbb69a1a97296e9623fb1548182f +size 54 diff --git a/BZOJ/2976/data/1.out b/BZOJ/2976/data/1.out new file mode 100644 index 00000000..a4a9d6d1 --- /dev/null +++ b/BZOJ/2976/data/1.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dab171ffc779a62b264a93c80f167b8134246f5a890d1cec51a7407f08ec07b1 +size 10 diff --git a/BZOJ/2976/data/10.in b/BZOJ/2976/data/10.in new file mode 100644 index 00000000..3308228e --- /dev/null +++ b/BZOJ/2976/data/10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ce8655f843400cc09ae2b246c6885ac080d23ab8c562d9798279c60cf308ad1 +size 16 diff --git a/BZOJ/2976/data/10.out b/BZOJ/2976/data/10.out new file mode 100644 index 00000000..0756eee8 --- /dev/null +++ b/BZOJ/2976/data/10.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:862db587c4257f71293cf07cafc521961712c088a52981f3d81be056eaabc95e +size 4 diff --git a/BZOJ/2976/data/11.in b/BZOJ/2976/data/11.in new file mode 100644 index 00000000..d6f61e09 --- /dev/null +++ b/BZOJ/2976/data/11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32c9dc178fe4aaec284f2102ac0645be1b7129a574d51bd8dcf04bd8c64e5ead +size 10 diff --git a/BZOJ/2976/data/11.out b/BZOJ/2976/data/11.out new file mode 100644 index 00000000..d76a596d --- /dev/null +++ b/BZOJ/2976/data/11.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0b5c2c2211c8d67ed15e75e656c7862d086e9245420892a7de62cd9ec582a06 +size 2 diff --git a/BZOJ/2976/data/12.in b/BZOJ/2976/data/12.in new file mode 100644 index 00000000..5d14ab5a --- /dev/null +++ b/BZOJ/2976/data/12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:564d48616f246e8da1fa8435d1f482e2bf15f08cf81842ea04cd84677ec34ddf +size 48 diff --git a/BZOJ/2976/data/12.out b/BZOJ/2976/data/12.out new file mode 100644 index 00000000..73a41fd7 --- /dev/null +++ b/BZOJ/2976/data/12.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28df70d20786253b84885674c3cfbd55eeb244840379f61ef015d56b2486de71 +size 8 diff --git a/BZOJ/2976/data/13.in b/BZOJ/2976/data/13.in new file mode 100644 index 00000000..81c89cba --- /dev/null +++ b/BZOJ/2976/data/13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7b9d0b8b56a0c8e165992e418877726576060b4dc1fa3b920f42f1185ab5c4 +size 39 diff --git a/BZOJ/2976/data/13.out b/BZOJ/2976/data/13.out new file mode 100644 index 00000000..e35a1067 --- /dev/null +++ b/BZOJ/2976/data/13.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:270124e7faba265685c3fe1aef05143fafa37a38433ec134d514a692693ee3d6 +size 7 diff --git a/BZOJ/2976/data/2.in b/BZOJ/2976/data/2.in new file mode 100644 index 00000000..617b731d --- /dev/null +++ b/BZOJ/2976/data/2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dad3381180fda48397ed1594008e2d912c99384873554188cdaa07c981a405e1 +size 24 diff --git a/BZOJ/2976/data/2.out b/BZOJ/2976/data/2.out new file mode 100644 index 00000000..6910978c --- /dev/null +++ b/BZOJ/2976/data/2.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8d638d4bf8da9d9d628083901244e98eb06e50e37e0f960640fa47a8d67fa4f +size 4 diff --git a/BZOJ/2976/data/3.in b/BZOJ/2976/data/3.in new file mode 100644 index 00000000..58bbc782 --- /dev/null +++ b/BZOJ/2976/data/3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d16b62699bebe706436645b1086a9fa07fb87fa0b1405fb1a406fe5488c6482 +size 36 diff --git a/BZOJ/2976/data/3.out b/BZOJ/2976/data/3.out new file mode 100644 index 00000000..25f6585b --- /dev/null +++ b/BZOJ/2976/data/3.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4df9bd9f8b2b2ba0fff31cebead6f30577581ca6b9fa0fa58b6702f31d269a6e +size 7 diff --git a/BZOJ/2976/data/4.in b/BZOJ/2976/data/4.in new file mode 100644 index 00000000..42610b7b --- /dev/null +++ b/BZOJ/2976/data/4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50c546c86064d3e7f7b1d6b92492688b4e59d53b7ea8de0c90c7d1789608a4b1 +size 45 diff --git a/BZOJ/2976/data/4.out b/BZOJ/2976/data/4.out new file mode 100644 index 00000000..298e7440 --- /dev/null +++ b/BZOJ/2976/data/4.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e71bc0613df606297c018803fba7335a5563a6d552c3ed43a0aa8271684316b +size 8 diff --git a/BZOJ/2976/data/5.in b/BZOJ/2976/data/5.in new file mode 100644 index 00000000..f1c4a9b8 --- /dev/null +++ b/BZOJ/2976/data/5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b1da58caf574938c8e4d77f4d3cc83ef50d1df296ab8fdfd84c63e5d2593cd4 +size 51 diff --git a/BZOJ/2976/data/5.out b/BZOJ/2976/data/5.out new file mode 100644 index 00000000..5ece3515 --- /dev/null +++ b/BZOJ/2976/data/5.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cd21b4fb0a70ede5d23c613ca1f611a6aa66e26dcfce1afa841f8b08fc2e7c6 +size 10 diff --git a/BZOJ/2976/data/6.in b/BZOJ/2976/data/6.in new file mode 100644 index 00000000..effd58a5 --- /dev/null +++ b/BZOJ/2976/data/6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18b4cd657e03e50b50c77bad97123c43129c75022a6b1976aba9300f0cabafce +size 54 diff --git a/BZOJ/2976/data/6.out b/BZOJ/2976/data/6.out new file mode 100644 index 00000000..869c1c46 --- /dev/null +++ b/BZOJ/2976/data/6.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8b0df61a67f71b969e0911b3600921e7faa9cde5ca0664910dfeda0c1be0ffd +size 9 diff --git a/BZOJ/2976/data/7.in b/BZOJ/2976/data/7.in new file mode 100644 index 00000000..ee74701f --- /dev/null +++ b/BZOJ/2976/data/7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10070d072a24ff3d863a530df28bef63ded1ac2248b77afba1cf827a02d46dfb +size 54 diff --git a/BZOJ/2976/data/7.out b/BZOJ/2976/data/7.out new file mode 100644 index 00000000..6910978c --- /dev/null +++ b/BZOJ/2976/data/7.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8d638d4bf8da9d9d628083901244e98eb06e50e37e0f960640fa47a8d67fa4f +size 4 diff --git a/BZOJ/2976/data/8.in b/BZOJ/2976/data/8.in new file mode 100644 index 00000000..21de293e --- /dev/null +++ b/BZOJ/2976/data/8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:328f66c4e2f446629735c6a92cfcab22902f8098c23100cf552af07f515ce11c +size 51 diff --git a/BZOJ/2976/data/8.out b/BZOJ/2976/data/8.out new file mode 100644 index 00000000..123b43ad --- /dev/null +++ b/BZOJ/2976/data/8.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9230d9389d564077ef3af99cc8eec1a9087ed433c510f9414208b36334c65d73 +size 10 diff --git a/BZOJ/2976/data/9.in b/BZOJ/2976/data/9.in new file mode 100644 index 00000000..306bec1f --- /dev/null +++ b/BZOJ/2976/data/9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48562946b96fbfec0ad70fd7f12d4995a97684da5c1bbc103ab473817b7ebb86 +size 33 diff --git a/BZOJ/2976/data/9.out b/BZOJ/2976/data/9.out new file mode 100644 index 00000000..84cec212 --- /dev/null +++ b/BZOJ/2976/data/9.out @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82cc88e9a575dcabcf06dc0c59577f1c308f73c3ff1ca97cb52995b7fda0c21a +size 7