#include "bits/stdc++.h" #define int long long #define pi pair<long long, long long> #define a3 array<long long, 3> #define meow main using namespace std; void solve(const string &s) { unordered_map<string, int> A; int res = 0; for(int i=0; i<(1<<s.size()); i++) { string to_add; int mask = i; int k=0; while(mask) { if(mask%2) to_add.push_back(s[k]); k++; mask/=2; } A[to_add]++; res += (A[to_add] == 2); } cout << res << '\n'; } signed meow() { cin.tie((ostream *)!ios::sync_with_stdio(false)); int n, q; cin >> n >> q; string s; cin >> s; solve(s); while (q--) { int i; cin >> i; char c; cin >> c; s[i-1] = c; solve(s); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include "bits/stdc++.h" #define int long long #define pi pair<long long, long long> #define a3 array<long long, 3> #define meow main using namespace std; void solve(const string &s) { unordered_map<string, int> A; int res = 0; for(int i=0; i<(1<<s.size()); i++) { string to_add; int mask = i; int k=0; while(mask) { if(mask%2) to_add.push_back(s[k]); k++; mask/=2; } A[to_add]++; res += (A[to_add] == 2); } cout << res << '\n'; } signed meow() { cin.tie((ostream *)!ios::sync_with_stdio(false)); int n, q; cin >> n >> q; string s; cin >> s; solve(s); while (q--) { int i; cin >> i; char c; cin >> c; s[i-1] = c; solve(s); } return 0; } |