#include <bits/stdc++.h> #define qio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define debug(x) cerr<<#x<<" "<<x<<endl #define ll long long #define st first #define nd second using namespace std; int n, t, x, m, vis[3003], gut, res; vector <int> V; void sprawdz(vector <int> v) { for (int i = 0; i < n; i++) { vis[i] = 0; } vis[0] = 1; for (int i = 0; i < v.size(); i++) { if (vis[i] == 1) { for (int j = i + 1; j < v.size(); j++) { if (v[i] == v[j]) { vis[j + 1] = 1; if (j == v.size() - 1) { gut = 1; break; } } } } if (gut == 1) break; } if (gut == 1) { /*for (int i = 0; i < v.size(); i++) { cout << v[i] + 1 << " "; } cout << endl;*/ res++; } } int main() { qio; cin >> n >> m; for (int i = 0; i < pow(m, n); i++) { x = i; gut = 0; while (x > 0) { V.push_back(x % m); x /= m; } while (V.size() < n) V.push_back(0); sprawdz(V); V.clear(); } cout << res << endl; }
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <bits/stdc++.h> #define qio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define debug(x) cerr<<#x<<" "<<x<<endl #define ll long long #define st first #define nd second using namespace std; int n, t, x, m, vis[3003], gut, res; vector <int> V; void sprawdz(vector <int> v) { for (int i = 0; i < n; i++) { vis[i] = 0; } vis[0] = 1; for (int i = 0; i < v.size(); i++) { if (vis[i] == 1) { for (int j = i + 1; j < v.size(); j++) { if (v[i] == v[j]) { vis[j + 1] = 1; if (j == v.size() - 1) { gut = 1; break; } } } } if (gut == 1) break; } if (gut == 1) { /*for (int i = 0; i < v.size(); i++) { cout << v[i] + 1 << " "; } cout << endl;*/ res++; } } int main() { qio; cin >> n >> m; for (int i = 0; i < pow(m, n); i++) { x = i; gut = 0; while (x > 0) { V.push_back(x % m); x /= m; } while (V.size() < n) V.push_back(0); sprawdz(V); V.clear(); } cout << res << endl; } |