From 438e3102a40a3ebff442475a0b96b0e993642eb5 Mon Sep 17 00:00:00 2001 From: WIDA <140591203+hh2048@users.noreply.github.com> Date: Mon, 21 Oct 2024 23:47:07 +0800 Subject: [PATCH] =?UTF-8?q?2024.10.21=20=E6=9B=B4=E6=96=B0=EF=BC=9Av1.8.7?= =?UTF-8?q?=20=E5=B0=81=E5=8C=85=E7=89=88=E6=9C=AC=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... \346\227\247\347\211\210\357\274\211.cpp" | 26 ------- ...5\246\357\274\210Manacher\357\274\211.cpp" | 50 ++++++++++++++ ... \346\226\260\347\211\210\357\274\211.cpp" | 21 ------ .../02 - Z\345\207\275\346\225\260.cpp" | 3 +- ... \346\227\247\347\211\210\357\274\211.cpp" | 3 +- ... \346\227\247\347\211\210\357\274\211.cpp" | 3 + ... \346\226\260\347\211\210\357\274\211.cpp" | 3 +- ... \346\227\247\347\211\210\357\274\211.cpp" | 6 +- ... \346\226\260\347\211\210\357\274\211.cpp" | 6 +- ... \346\226\260\347\211\210\357\274\211.cpp" | 4 +- ...1\344\276\213\351\242\230\357\274\211.cpp" | 7 +- ...5\255\227\345\205\270\346\240\221 Trie.md" | 0 ...0\344\276\213\351\242\230\357\274\211.cpp" | 67 ------------------- ...\255\227\345\205\270\346\240\221 Trie.cpp" | 0 14 files changed, 71 insertions(+), 128 deletions(-) delete mode 100644 "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\227\247\347\211\210\357\274\211.cpp" create mode 100644 "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher\357\274\211.cpp" delete mode 100644 "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01B - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\226\260\347\211\210\357\274\211.cpp" rename "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\347\211\210\357\274\211.cpp" => "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with vector \346\226\260\347\211\210\357\274\211.cpp" (89%) rename "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\346\226\260\347\211\210\357\274\211.cpp" => "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with string \346\226\260\347\211\210\357\274\211.cpp" (92%) rename "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \351\232\217\346\234\272\347\224\237\346\210\220\346\250\241\345\272\225\347\211\210\345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\344\276\213\351\242\230\357\274\211.cpp" => "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\351\232\217\346\234\272\345\272\225\346\250\241\344\276\213\351\242\230\357\274\211.cpp" (92%) rename "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.md" => "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie.md" (100%) delete mode 100644 "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie\357\274\210\344\276\213\351\242\230\357\274\211.cpp" rename "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09C - \345\255\227\345\205\270\346\240\221 Trie.cpp" => "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.cpp" (100%) diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\227\247\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\227\247\347\211\210\357\274\211.cpp" deleted file mode 100644 index 843fd2b..0000000 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\227\247\347\211\210\357\274\211.cpp" +++ /dev/null @@ -1,26 +0,0 @@ -/** 马拉车(Manacher 旧版) - * 2024-04-06: https://qoj.ac/submission/380047 - * 2024-04-09: https://qoj.ac/submission/384389 【模板】 -**/ -std::vector manacher(std::string s) { - std::string t = "#"; - for (auto c : s) { - t += c; - t += '#'; - } - int n = t.size(); - std::vector r(n); - for (int i = 0, j = 0; i < n; i++) { - if (2 * j - i >= 0 && j + r[j] > i) { - r[i] = std::min(r[2 * j - i], j + r[j] - i); - } - while (i - r[i] >= 0 && i + r[i] < n && t[i - r[i]] == t[i + r[i]]) { - r[i] += 1; - } - if (i + r[i] > j + r[j]) { - j = i; - } - } - return r; -} - diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher\357\274\211.cpp" new file mode 100644 index 0000000..45dd682 --- /dev/null +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01A - \351\251\254\346\213\211\350\275\246\357\274\210Manacher\357\274\211.cpp" @@ -0,0 +1,50 @@ +/** 马拉车(Manacher, with string) + * 2024-04-06: https://qoj.ac/submission/380047 + * 2024-04-09: https://qoj.ac/submission/384389 【模板】 +**/ +std::vector manacher(std::string s) { + std::string t = "#"; + for (auto c : s) { + t += c; + t += '#'; + } + int n = t.size(); + std::vector r(n); + for (int i = 0, j = 0; i < n; i++) { + if (2 * j - i >= 0 && j + r[j] > i) { + r[i] = std::min(r[2 * j - i], j + r[j] - i); + } + while (i - r[i] >= 0 && i + r[i] < n && t[i - r[i]] == t[i + r[i]]) { + r[i] += 1; + } + if (i + r[i] > j + r[j]) { + j = i; + } + } + return r; +} + +/** 马拉车(Manacher, with vector) + * 2024-04-14: https://atcoder.jp/contests/abc349/submissions/52365777 +**/ +std::vector manacher(std::vector s) { + std::vector t{0}; + for (auto c : s) { + t.push_back(c); + t.push_back(0); + } + int n = t.size(); + std::vector r(n); + for (int i = 0, j = 0; i < n; i++) { + if (2 * j - i >= 0 && j + r[j] > i) { + r[i] = std::min(r[2 * j - i], j + r[j] - i); + } + while (i - r[i] >= 0 && i + r[i] < n && t[i - r[i]] == t[i + r[i]]) { + r[i] += 1; + } + if (i + r[i] > j + r[j]) { + j = i; + } + } + return r; +} diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01B - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\226\260\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01B - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\226\260\347\211\210\357\274\211.cpp" deleted file mode 100644 index c283db8..0000000 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/01B - \351\251\254\346\213\211\350\275\246\357\274\210Manacher \346\226\260\347\211\210\357\274\211.cpp" +++ /dev/null @@ -1,21 +0,0 @@ -std::vector manacher(std::vector s) { - std::vector t{0}; - for (auto c : s) { - t.push_back(c); - t.push_back(0); - } - int n = t.size(); - std::vector r(n); - for (int i = 0, j = 0; i < n; i++) { - if (2 * j - i >= 0 && j + r[j] > i) { - r[i] = std::min(r[2 * j - i], j + r[j] - i); - } - while (i - r[i] >= 0 && i + r[i] < n && t[i - r[i]] == t[i + r[i]]) { - r[i] += 1; - } - if (i + r[i] > j + r[j]) { - j = i; - } - } - return r; -} diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/02 - Z\345\207\275\346\225\260.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/02 - Z\345\207\275\346\225\260.cpp" index 07d90cf..2abc551 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/02 - Z\345\207\275\346\225\260.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/02 - Z\345\207\275\346\225\260.cpp" @@ -16,5 +16,4 @@ std::vector Z(std::string s) { } } return z; -} - +} \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/03A - \345\220\216\347\274\200\346\225\260\347\273\204\357\274\210SuffixArray \346\227\247\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/03A - \345\220\216\347\274\200\346\225\260\347\273\204\357\274\210SuffixArray \346\227\247\347\211\210\357\274\211.cpp" index 6cc55c1..a8ce986 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/03A - \345\220\216\347\274\200\346\225\260\347\273\204\357\274\210SuffixArray \346\227\247\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/03A - \345\220\216\347\274\200\346\225\260\347\273\204\357\274\210SuffixArray \346\227\247\347\211\210\357\274\211.cpp" @@ -49,5 +49,4 @@ struct SuffixArray { } } } -}; - +}; \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04A - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SuffixAutomaton \346\227\247\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04A - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SuffixAutomaton \346\227\247\347\211\210\357\274\211.cpp" index 0162876..ce8ae19 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04A - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SuffixAutomaton \346\227\247\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04A - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SuffixAutomaton \346\227\247\347\211\210\357\274\211.cpp" @@ -1,3 +1,6 @@ +/** 后缀自动机(SuffixAutomaton 旧版) + * 2022-08-17: https://ac.nowcoder.com/acm/contest/view-submission?submissionId=53409023&returnHomeType=1&uid=329687984 +**/ struct SuffixAutomaton { static constexpr int ALPHABET_SIZE = 26, N = 5e5; struct Node { diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04B - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SAM \346\226\260\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04B - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SAM \346\226\260\347\211\210\357\274\211.cpp" index 35b10f7..01b921b 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04B - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SAM \346\226\260\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/04B - \345\220\216\347\274\200\350\207\252\345\212\250\346\234\272\357\274\210SAM \346\226\260\347\211\210\357\274\211.cpp" @@ -74,5 +74,4 @@ struct SAM { int size() { return t.size(); } -}; - +}; \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06A - AC\350\207\252\345\212\250\346\234\272\357\274\210AC \346\227\247\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06A - AC\350\207\252\345\212\250\346\234\272\357\274\210AC \346\227\247\347\211\210\357\274\211.cpp" index 02ecd57..fa86c96 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06A - AC\350\207\252\345\212\250\346\234\272\357\274\210AC \346\227\247\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06A - AC\350\207\252\345\212\250\346\234\272\357\274\210AC \346\227\247\347\211\210\357\274\211.cpp" @@ -1,3 +1,6 @@ +/** AC自动机(AC 旧版) + * 2021-07-07: https://codeforces.com/contest/710/submission/121661266 +**/ constexpr int N = 3e5 + 30, A = 26; struct Node { @@ -72,5 +75,4 @@ struct AC { } return ans; } -}; - +}; \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with vector \346\226\260\347\211\210\357\274\211.cpp" similarity index 89% rename from "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\347\211\210\357\274\211.cpp" rename to "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with vector \346\226\260\347\211\210\357\274\211.cpp" index c5ceee9..812d58d 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06B - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with vector \346\226\260\347\211\210\357\274\211.cpp" @@ -1,3 +1,6 @@ +/** AC自动机(AhoCorasick, with vector 新版) + * 2023-04-07: https://codeforces.com/contest/1801/submission/201155712 +**/ struct AhoCorasick { static constexpr int ALPHABET = 26; struct Node { @@ -82,5 +85,4 @@ struct AhoCorasick { int size() { return t.size(); } -}; - +}; \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\346\226\260\347\211\210\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with string \346\226\260\347\211\210\357\274\211.cpp" similarity index 92% rename from "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\346\226\260\347\211\210\357\274\211.cpp" rename to "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with string \346\226\260\347\211\210\357\274\211.cpp" index cc1f5dc..2cbb991 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick \346\226\260\346\226\260\347\211\210\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/06C - AC\350\207\252\345\212\250\346\234\272\357\274\210AhoCorasick, with string \346\226\260\347\211\210\357\274\211.cpp" @@ -1,4 +1,4 @@ -/** AC自动机(AhoCorasick 新新版) +/** AC自动机(AhoCorasick, with string 新版) * 2024-04-09: https://www.luogu.com.cn/record/155114676 【模板】 **/ struct AhoCorasick { @@ -74,4 +74,4 @@ struct AhoCorasick { int size() { return t.size(); } -}; +}; \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \351\232\217\346\234\272\347\224\237\346\210\220\346\250\241\345\272\225\347\211\210\345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\344\276\213\351\242\230\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\351\232\217\346\234\272\345\272\225\346\250\241\344\276\213\351\242\230\357\274\211.cpp" similarity index 92% rename from "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \351\232\217\346\234\272\347\224\237\346\210\220\346\250\241\345\272\225\347\211\210\345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\344\276\213\351\242\230\357\274\211.cpp" rename to "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\351\232\217\346\234\272\345\272\225\346\250\241\344\276\213\351\242\230\357\274\211.cpp" index ed53999..d9dd2ab 100644 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \351\232\217\346\234\272\347\224\237\346\210\220\346\250\241\345\272\225\347\211\210\345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\344\276\213\351\242\230\357\274\211.cpp" +++ "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/07 - \345\255\227\347\254\246\344\270\262\345\223\210\345\270\214\357\274\210\351\232\217\346\234\272\345\272\225\346\250\241\344\276\213\351\242\230\357\274\211.cpp" @@ -1,3 +1,7 @@ +/** 字符串哈希(随机底模例题) + * 2022-06-09: https://codeforces.com/contest/1598/submission/160006998 +**/ + #include using i64 = long long; @@ -110,5 +114,4 @@ int main() { } return 0; -} - +} \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.md" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie.md" similarity index 100% rename from "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.md" rename to "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie.md" diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie\357\274\210\344\276\213\351\242\230\357\274\211.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie\357\274\210\344\276\213\351\242\230\357\274\211.cpp" deleted file mode 100644 index 97731a7..0000000 --- "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09A - \345\255\227\345\205\270\346\240\221 Trie\357\274\210\344\276\213\351\242\230\357\274\211.cpp" +++ /dev/null @@ -1,67 +0,0 @@ -/** 字典树 Trie(例题) - * 2023-09-26: https://qoj.ac/submission/188993 -**/ -constexpr int N = 1 << 18; - -int mx[30][N]; - -void build(int d, int p, int l, int r, const std::vector &v) { - if (r - l == 1) { - mx[d][p] = v[l]; - return; - } - int m = (l + r) / 2; - build(d, 2 * p, l, m, v); - build(d, 2 * p + 1, m, r, v); - mx[d][p] = std::max(mx[d][2 * p], mx[d][2 * p + 1]); -} - -int query(int d, int p, int l, int r, int x, int y) { - if (l >= y || r <= x) { - return -1; - } - if (l >= x && r <= y) { - return mx[d][p]; - } - int m = (l + r) / 2; - return std::max(query(d, 2 * p, l, m, x, y), query(d, 2 * p + 1, m, r, x, y)); -} - -int main() { - int N, Q; - std::cin >> N >> Q; - - std::vector A(N); - for (int i = 0; i < N; i++) { - std::cin >> A[i]; - } - - std::vector nxt(N + 1, std::vector(30, N)); - for (int i = N - 1; i >= 0; i--) { - nxt[i] = nxt[i + 1]; - for (int j = 0; j < 30; j++) { - if (A[i] >> j & 1) { - nxt[i][j] = i; - } - } - } - - std::vector lst(N + 1, std::vector(30, 0)); - for (int i = 0; i < N; i++) { - lst[i + 1] = lst[i]; - for (int j = 0; j < 30; j++) { - if (A[i] >> j & 1) { - lst[i + 1][j] = i + 1; - } - } - } - std::vector val(N, -1); - for (int j = 29; j >= 0; j--) { - for (int i = 0; i < N; i++) { - if (A[i] >> j & 1) { - val[i] = j; - } - } - build(j, 1, 0, N, val); - } -} \ No newline at end of file diff --git "a/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09C - \345\255\227\345\205\270\346\240\221 Trie.cpp" "b/03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.cpp" similarity index 100% rename from "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09C - \345\255\227\345\205\270\346\240\221 Trie.cpp" rename to "03 - jiangly\346\250\241\346\235\277\346\224\266\351\233\206/05 - \345\255\227\347\254\246\344\270\262/09B - \345\255\227\345\205\270\346\240\221 Trie.cpp"