摘要: #include<iostream> #include<cstring> using namespace std; const int N = 6010; int h[N], e[N], ne[N], idx; int w[N]; int n; int f[N][2]; int st[N]; voi 阅读全文
posted @ 2020-09-17 18:50 yys_c 阅读(81) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> using namespace std; const int N = 1010; char a[N], b[N]; int n, m; int f[N][N]; int main(){ scanf("%d%s%d%s", &n, a + 1, &m, b + 1 阅读全文
posted @ 2020-09-17 16:25 yys_c 阅读(104) 评论(0) 推荐(0) 编辑
摘要: #include<iostream> using namespace std; const int N = 1010; char a[N], b[N]; int n, m; int f[N][N]; int main(){ cin >> n >> m; scanf("%s%s", a + 1, b 阅读全文
posted @ 2020-09-17 16:22 yys_c 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 数据范围10^5, 所以考虑O(nlogn)或者O(n)的复杂度,所以最多枚举一个数组。 到底是枚举数组a,还是b还是c 要求满足ai < bi < ci 如果枚举a,那么由于b和c之间存在限制,即对b和c的选择不独立,所以不可以用乘法原理 而枚举b的话,a和c是独立的, 可以用乘法原理。 前缀和O 阅读全文
posted @ 2020-09-17 11:23 yys_c 阅读(258) 评论(0) 推荐(0) 编辑
摘要: a[1] ~ a[N]存储1~N的一个排列 枚举一个区间[l, r]:a[l], a[l + 1], ..., a[r], 如果区间[l, r] 的max - min = r - l可以推出[l, r]为一个连号区间。 证明: $因为数组a存储1到N的全排列,所以a[l] - a[r]中不存在重复元 阅读全文
posted @ 2020-09-17 10:42 yys_c 阅读(126) 评论(0) 推荐(0) 编辑