摘要:
LCS 操作对象:两个长度不一定相等的字符串。 例题 string s, t; int f[maxn][maxn]; int main() { cin >> s >> t; int ls = s.length(), lt = t.length(); for (int i = 1; i <= ls; 阅读全文
摘要:
二分 求一个序列的最长上升子序列个数。 本程序采用边读边处理 + 二分法。 ll f[maxn], ans = 1; //注意答案个数初始化为1 int main() { ll n = read(); for (int i = 1; i <= n; ++i) { int x = read(); if 阅读全文
摘要:
使用前提:数列为有序数列。 ①数组内 //查找范围:[ begin , end ) ,左闭右开区间。 *lower_bound(begin, end, num); //返回第一个 >= num 的数的数值 lower_bound(begin, end, num) - begin; // 返回下标 实 阅读全文
摘要:
快速乘法取余 给定三个整数 \(a,n,mod\) ,求 \(a \times n ~\%~mod\) 的值。 inline int mult_mod(int a, int n, int mod) { int ans = 0; while (n > 0) { if (n & 1) ans = (an 阅读全文
摘要:
最大公约数 ① 标准 inline int gcd(int a, int b) { int r; while (b > 0) { r = a % b; a = b; b = r; } return a; } ② 位运算 inline int gcd(int a, int b) //a,b不能为0 { 阅读全文