Simple String Queries
問題
E – Simple String Queries
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2022/3/15 解法わからず。
解法
- (解法はあとで書く。)
コード例
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using P = pair<int, int>; #define rep(i, n) for(int i = 0; i < (n); ++i) // using mint = modint998244353; // using mint = modint1000000007; // const int mod = 1000000007; // const ll INF = 1LL << 62; // const int INF = 1001001001; int main() { int N; cin >> N; string S; cin >> S; int Q; cin >> Q; vector<set<int>> st(26); rep(i, N) { st[S[i] - 'a'].insert(i); } while(0 < Q) { int t; cin >> t; if(t == 1) { int i; char c; cin >> i >> c; i--; st[S[i] - 'a'].erase(i); S[i] = c; st[S[i] - 'a'].insert(i); } else { int l, r; cin >> l >> r; l--; int ans = 0; rep(i, 26) { auto v = st[i].lower_bound(l); if(v != st[i].end() && *v < r) { ans++; } } cout << ans << endl; } Q--; } return 0; }