intmain() { int n; scanf("%d", &n); for (int i = 1; i <= n; ++i) scanf("%d", &val[i]); for (int i = 1; i <= n; ++i) { f[i] = 1; for (int j = 1; j < i; ++j) if (val[i] > val[j]) f[i] = max(f[i], f[j] + 1); } int res = 0; for (int i = 1; i <= n; ++i) res = max(res, f[i]); printf("%d", res); return0; }
constint N = 1e5 + 10; int vals[N], q[N];//q用于存储每种长度的子序列的最后一个值的大小
intmain() { int n, len = 0; scanf("%d", &n); for(int i = 1; i <= n; ++i) scanf("%d", &vals[i]); q[0] = -2e9;//根据数据范围选定,同时除了空序列,任何序列的长度都大于0 for(int i = 1; i <= n; ++i) { int l = 0, r = len; while(l < r) { int mid = l + r + 1 >> 1; if(q[mid] < vals[i]) l = mid; else r = mid - 1; } len = max(len, r + 1); q[r + 1] = vals[i]; } printf("%d", len); return0; }
intqmi(int x, int k, int p) { int res = 1; while (k) { if (k & 1) res = (ll) res * x % mod; x = (ll) x * x % mod; k >>= 1; } return res; }
intc(int a, int b) { if (a < b) return0; int res = 1; for (int i = 1, j = a; i <= b; ++i, --j) { res = (ll) res * j % mod; res = (ll) res * qmi(i, mod - 2, mod) % mod; } return res; }
intmain() { int n; cin >> n; int res = (ll) c(2 * n, n) * qmi(n + 1, mod - 2, mod) % mod; cout << res << endl; return0; }
intqmi(int ai, int bi, int pi) { longlong res = 1; while (bi) { if (bi & 1)//位与,判断当前最低位是否为1 res = res * ai % pi; ai = (longlong) ai * ai % pi; //根据公式推到,a^k被拆分, //且后一个ai值为当前值的平方(bi被当作二进制数处理的原因) bi >>= 1; } return res; }
intmain() { int n; cin >> n; while (n--) { int ai, bi, pi; scanf("%d%d%d", &ai, &bi, &pi); printf("%d\n", qmi(ai, bi, pi)); } return0; }
intqmi(int ai, int bi, int pi) { longlong res = 1; while (bi) { if (bi & 1) res = res * ai%pi; bi >>= 1; ai = (longlong)ai*ai%pi; } return res; }
intmain() { int n; cin >> n; while (n--) { int ai, pi; scanf("%d%d", &ai, &pi); int res = qmi(ai, pi - 2, pi); if (ai%pi) printf("%lld\n", res); else puts("impossible"); } return0; }
intexgcd(int ai, int bi, int &xi, int &yi) { if (!bi) { xi = 1, yi = 0; return ai; } int res = exgcd(bi, ai % bi, yi, xi); yi -= ai / bi * xi; return res; } //如何理解这里的递归和yi的更新
intmain() { int n; cin >> n; while (n--) { int ai, bi, xi, yi; scanf("%d%d", &ai, &bi); exgcd(ai, bi, xi, yi); printf("%d %d\n", xi, yi); } return0; }