#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; } |
English