From 147a99e2bcb0662e36197c509b8d92eb8d926f88 Mon Sep 17 00:00:00 2001 From: subcrip Date: Wed, 20 Mar 2024 18:09:20 +0800 Subject: [PATCH] backup --- .../DGuessTheString/a.out | Bin 0 -> 62968 bytes .../DGuessTheString/cpp.out | Bin 0 -> 45288 bytes .../DGuessTheString/input1 | 8 + .../DGuessTheString/output1 | 8 + .../DGuessTheString/solution.cpp | 317 ++++++++++++++++++ 5 files changed, 333 insertions(+) create mode 100755 Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/a.out create mode 100755 Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/cpp.out create mode 100644 Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/input1 create mode 100644 Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/output1 create mode 100644 Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/solution.cpp diff --git a/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/a.out b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e6b68e1a387431815b10bc624e647910e4adbd18 GIT binary patch literal 62968 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 CuVqO9 literal 0 HcmV?d00001 diff --git a/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/cpp.out b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/cpp.out new file mode 100755 index 0000000000000000000000000000000000000000..1add40c52aab0288b10fc36c46e7dcbae5c2d04f GIT binary patch literal 45288 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 A8UO$Q literal 0 HcmV?d00001 diff --git a/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/input1 b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/input1 new file mode 100644 index 0000000..2b45294 --- /dev/null +++ b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/input1 @@ -0,0 +1,8 @@ +5 +4 +u +2 +g +e +s +1 diff --git a/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/output1 b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/output1 new file mode 100644 index 0000000..75ec140 --- /dev/null +++ b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/output1 @@ -0,0 +1,8 @@ +? 2 1 5 +? 1 2 +? 2 1 2 +? 1 1 +? 1 3 +? 1 4 +? 2 4 5 +! guess diff --git a/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/solution.cpp b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/solution.cpp new file mode 100644 index 0000000..f53361d --- /dev/null +++ b/Codeforces/EducationalCodeforcesRound130(RatedforDiv2)/DGuessTheString/solution.cpp @@ -0,0 +1,317 @@ + +#pragma GCC optimize("Ofast") +///////////////////////////////////////////////////////// +/** + * Useful Macros + * by subcrip + * (requires C++17) + */ + +#include +using namespace std; + +/* macro helpers */ +#define __NARGS(...) std::tuple_size::value +#define __DECOMPOSE_S(a, x) auto x = a; +#define __DECOMPOSE_N(a, ...) auto [__VA_ARGS__] = a; +constexpr void __() {} +#define __AS_PROCEDURE(...) __(); __VA_ARGS__; __() +#define __as_typeof(container) decltype(container)::value_type + +/* type aliases */ +using ll = int64_t; +using ull = uint64_t; +using pii = pair; +using pil = pair; +using pli = pair; +using pll = pair; + +/* constants */ +constexpr int INF = 0x3f3f3f3f; +constexpr ll INFLL = 0x3f3f3f3f3f3f3f3fLL; +constexpr ll MDL = 1e9 + 7; +constexpr ll PRIME = 998'244'353; +constexpr ll MDL1 = 8784491; +constexpr ll MDL2 = PRIME; + +/* random */ + +mt19937 rd(chrono::duration_cast(chrono::system_clock::now().time_since_epoch()).count()); + +/* bit-wise operations */ +#define lowbit(x) ((x) & -(x)) +#define popcount(x) (__builtin_popcountll(ll(x))) +#define parity(x) (__builtin_parityll(ll(x))) +#define msp(x) (63LL - __builtin_clzll(ll(x))) +#define lsp(x) (__builtin_ctzll(ll(x))) + +/* arithmetic operations */ +#define mod(x, y) ((((x) % (y)) + (y)) % (y)) + +/* fast pairs */ +#define upair ull +#define umake(x, y) (ull(x) << 32 | (ull(y) & ((1ULL << 32) - 1))) +#define u1(p) ((p) >> 32) +#define u2(p) ((p) & ((1ULL << 32) - 1)) +#define ult std::less +#define ugt std::greater + +#define ipair ull +#define imake(x, y) (umake(x, y)) +#define i1(p) (int(u1(ll(p)))) +#define i2(p) (ll(u2(p) << 32) >> 32) +struct ilt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) < i2(b); + else return i1(a) < i1(b); + } +}; +struct igt { + bool operator()(const ipair& a, const ipair& b) const { + if (i1(a) == i1(b)) return i2(a) > i2(b); + else return i1(a) > i1(b); + } +}; + +/* conditions */ +#define loop while (1) +#define if_or(var, val) if (!(var == val)) var = val; else +#define continue_or(var, val) __AS_PROCEDURE(if (var == val) continue; var = val;) +#define break_or(var, val) __AS_PROCEDURE(if (var == val) break; var = val;) + +/* hash */ +struct safe_hash { + // https://codeforces.com/blog/entry/62393 + static uint64_t splitmix64(uint64_t x) { + // http://xorshift.di.unimi.it/splitmix64.c + x += 0x9e3779b97f4a7c15; + x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; + x = (x ^ (x >> 27)) * 0x94d049bb133111eb; + return x ^ (x >> 31); + } + + size_t operator()(uint64_t x) const { + static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); + return splitmix64(x + FIXED_RANDOM); + } +}; + +struct pair_hash { + template + size_t operator()(const pair& a) const { + auto hash1 = safe_hash()(a.first); + auto hash2 = safe_hash()(a.second); + if (hash1 != hash2) { + return hash1 ^ hash2; + } + return hash1; + } +}; + +/* build data structures */ +#define unordered_counter(from, to) __AS_PROCEDURE(unordered_map<__as_typeof(from), size_t, safe_hash> to; for (auto&& x : from) ++to[x];) +#define counter(from, to, cmp) __AS_PROCEDURE(map<__as_typeof(from), size_t, cmp> to; for (auto&& x : from) ++to[x];) +#define pa(a) __AS_PROCEDURE(__typeof(a) pa; pa.push_back({}); for (auto&&x : a) pa.push_back(pa.back() + x);) +#define sa(a) __AS_PROCEDURE(__typeof(a) sa(a.size() + 1); {int n = a.size(); for (int i = n - 1; i >= 0; --i) sa[i] = sa[i + 1] + a[i];};) +#define adj(ch, n) __AS_PROCEDURE(vector> ch((n) + 1);) +#define edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v), ch[v].push_back(u);) +#define Edge(ch, u, v) __AS_PROCEDURE(ch[u].push_back(v);) +template pair> discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} +template pair> unordered_discretize(Iterator __first, Iterator __last) { + set st(__first, __last); + size_t N = 0; + unordered_map mp; + for (auto&& x : st) mp[x] = ++N; + return {N, mp}; +} + +/* io */ +#define untie __AS_PROCEDURE(ios_base::sync_with_stdio(0), cin.tie(NULL)) +template void __read(T& x) { cin >> x; } +template void __read(T& x, U&... args) { cin >> x; __read(args...); } +#define read(type, ...) __AS_PROCEDURE(type __VA_ARGS__; __read(__VA_ARGS__);) +#define readvec(type, a, n) __AS_PROCEDURE(vector a(n); for (int i = 0; i < (n); ++i) cin >> a[i];) +#define putvec(a) __AS_PROCEDURE(for (auto&& x : a) cout << x << ' '; cout << endl;) +#define debug(x) __AS_PROCEDURE(cerr << #x" = " << (x) << endl;) +#define debugvec(a) __AS_PROCEDURE(cerr << #a" = "; for (auto&& x : a) cerr << x << ' '; cerr << endl;) +template ostream& operator<<(ostream& out, const pair& p) { + out << "{" << p.first << ", " << p.second << "}"; + return out; +} +template +void print_tuple_impl(std::basic_ostream& os, const Tuple& t, std::index_sequence) { + using swallow = int[]; // guaranties left to right order + (void)swallow { 0, (void(os << (Index == 0 ? "" : ", ") << std::get(t)), 0)... }; +} +template +decltype(auto) operator<<(std::basic_ostream& os, const std::tuple& t) { + os << "{"; + print_tuple_impl(os, t, std::index_sequence_for{}); + return os << "}"; +} +template ostream& operator<<(ostream& out, const vector& vec) { + for (auto&& i : vec) out << i << ' '; + return out; +} + +/* pops */ +#define poptop(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.top(); q.pop();) +#define popback(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.back(); q.pop_back();) +#define popfront(q, ...) __AS_PROCEDURE(auto [__VA_ARGS__] = q.front();q.pop_front();) + +/* math */ +constexpr inline int lg2(ll x) { return x == 0 ? -1 : sizeof(ll) * 8 - 1 - __builtin_clzll(x); } + +void __exgcd(ll a, ll b, ll& x, ll& y) { + if (b == 0) { + x = 1, y = 0; + return; + } + __exgcd(b, a % b, y, x); + y -= a / b * x; +} + +ll inverse(ll a, ll b) { + ll x, y; + __exgcd(a, b, x, y); + return mod(x, b); +} + +/* string algorithms */ +vector calc_next(string t) { // pi function of t + int n = (int)t.length(); + vector pi(n); + for (int i = 1; i < n; i++) { + int j = pi[i - 1]; + while (j > 0 && t[i] != t[j]) j = pi[j - 1]; + if (t[i] == t[j]) j++; + pi[i] = j; + } + return pi; +} +vector calc_z(string t) { // z function of t + int m = t.length(); + vector z; + z.push_back(m); + pair prev = {1, -1}; + for (int i = 1; i < m; ++i) { + if (z[i - prev.first] + i <= prev.second) { + z.push_back(z[i - prev.first]); + } else { + int j = max(i, prev.second + 1); + while (j < m && t[j] == t[j - i]) ++j; + z.push_back(j - i); + prev = {i, j - 1}; + } + } + return z; +} +vector kmp(string s, string t) { // find all t in s + string cur = t + '#' + s; + int sz1 = s.size(), sz2 = t.size(); + vector v; + vector lps = calc_next(cur); + for (int i = sz2 + 1; i <= sz1 + sz2; i++) { + if (lps[i] == sz2) v.push_back(i - 2 * sz2); + } + return v; +} +int period(string s) { // find the length of shortest recurring period + int n = s.length(); + auto z = calc_z(s); + for (int i = 1; i <= n / 2; ++i) { + if (n % i == 0 && z[i] == n - i) { + return i; + } + } + return n; +} +///////////////////////////////////////////////////////// + +#define SINGLE_TEST_CASE +// #define DUMP_TEST_CASE 512 + +void dump() {} + +void prep() {} + +void solve() { + auto ask1 = [] (int i) -> char { + cout << "? 1 " << i << endl; + read(char, x); + return x; + }; + auto ask2 = [] (int l, int r) -> int { + cout << "? 2 " << l << ' ' << r << endl; + read(int, x); + return x; + }; + auto claim = [] (string s) -> void { + cout << "! " << s << endl; + }; + read(int, n); + vector type(n); + int type_cnt = 0; + vector prev(26, -1); + for (int i = 0; i < n; ++i) { + if (type_cnt + 1 == ask2(1, i + 1)) { + type[i] = type_cnt++; + prev[type_cnt - 1] = i; + } else { + // binary search for the type of current character + vector cand; + for (int j = 0; j < 26; ++j) { + if (prev[j] != -1) cand.emplace_back(prev[j], j); + } + sort(cand.begin(), cand.end()); + int l = 0, r = type_cnt - 1; + while (l < r) { + int mid = l + r + 1 >> 1; + if (ask2(cand[mid].first + 1, i + 1) == type_cnt - mid) { + l = mid; + } else { + r = mid - 1; + } + } + type[i] = cand[l].second; + prev[cand[l].second] = i; + } + } + string s(n, 0); + for (int i = 0; i < type_cnt; ++i) { + char c = ask1(1 + prev[i]); + for (int j = 0; j < n; ++j) { + if (type[j] == i) { + s[j] = c; + } + } + } + claim(s); +} + +int main() { + untie, cout.tie(NULL); + prep(); +#ifdef SINGLE_TEST_CASE + solve(); +#else + read(int, t); + for (int i = 0; i < t; ++i) { +#ifdef DUMP_TEST_CASE + if (i + 1 == (DUMP_TEST_CASE)) { + dump(); + } else { + solve(); + } +#else + solve(); +#endif + } +#endif +}