上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 32 下一页
摘要: [A. Relic Discovery] 签到 #include <bits/stdc++.h> int n; int main() { int T; scanf("%d", &T); while (T--) { scanf("%d", &n); int ans = 0; for (int i = 阅读全文
posted @ 2019-10-20 01:17 Mrzdtz220 阅读(460) 评论(0) 推荐(0)
摘要: [传送门] 树链剖分。线段树维护区间最左边和最右边的颜色以及区间颜色段,合并时等于左区间颜色段+右区间颜色段-[左区间右端点颜色==右区间左端点颜色] #include <bits/stdc++.h> namespace IO { #define getc getchar void read() { 阅读全文
posted @ 2019-10-18 23:40 Mrzdtz220 阅读(108) 评论(0) 推荐(0)
摘要: [传送门] 先求出SA和height。然后找到 rank[l] 的 height 值。能成为相同子串的就是和rank[l]的lcp不小于 $len$ 的。二分出左右端点之后,主席树求第k小即可。 #include <bits/stdc++.h> const int N = 1e5 + 7; char 阅读全文
posted @ 2019-10-18 19:46 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要: [传送门] 存个模板... #include <bits/stdc++.h> #define MAXN 100 #define MAXM 10001 #define MAXP 40000 #define MAX 400000 #define clr(ar) meset(ar, 0, sizeof(a 阅读全文
posted @ 2019-10-18 19:40 Mrzdtz220 阅读(118) 评论(0) 推荐(0)
摘要: [A. Thickest Burger] 签到。 [B. Relative atomic mass] 签到 [C. Recursive sequence] $$f[i] = f[i - 1] + 2 * f[i - 2] + i ^ 4$$ $$\left[ \begin{matrix} 1 & 2 阅读全文
posted @ 2019-10-17 00:28 Mrzdtz220 阅读(293) 评论(0) 推荐(0)
摘要: 把原字符看成 $X$,每个位置看成 $Y$,每种字符向每个能去的位置连边,就成了一个二分图完美匹配的问题。现要得到字典序最小,那么就枚举每一位要放什么,然后看放完这种字符,剩下的字符的个数和后面能不能形成完美匹配。根据霍尔定理,选择 $X$ 中的一个子集 $s$,和 $Y$ 连边的点集为 $N(s) 阅读全文
posted @ 2019-10-14 22:04 Mrzdtz220 阅读(139) 评论(0) 推荐(0)
摘要: 数据小的话就暴力跑网络流就好了。 但是这里是 $10^5$ 就不行了。现在枚举 {$a_i$} 中一段长为 $m$ 的连续子序列,考虑和 {$b_i$} 中的完美匹配。根据Hall定理,一个二分图,分为 $X$ 和 $Y$,存在完美匹配的充要条件为任取 $X$ 中一个子集 $s$,$Y$ 中与 $s 阅读全文
posted @ 2019-10-14 22:03 Mrzdtz220 阅读(174) 评论(0) 推荐(0)
摘要: A. Antipalindrome 直接暴力判断就行了。 #include <bits/stdc++.h> using namespace std; const int N = 100; char s[N]; bool check(int i, int j) { while (i <= j) { i 阅读全文
posted @ 2019-10-14 22:00 Mrzdtz220 阅读(125) 评论(0) 推荐(0)
摘要: tourist's contest...ssfd A - Move and Win 想不到好的博弈方法,我就直接暴力了...可以确定的是,如果一个人觉得他走这个方向是最优的,那么他肯定会一直走下去。那么就枚举四种情况,第一个人往左(往右),第二个人往左(往右)。当第一个人往左(或往右)时,另一个人怎 阅读全文
posted @ 2019-10-14 21:57 Mrzdtz220 阅读(145) 评论(0) 推荐(0)
摘要: 假设现在有一堆数,我想要保证能取出一个,至少需要敲 (数的个数)*(这些数里的最小值)那么把这些数从大到小排序,$dp[i][j]$ 表示前 $i$ 个里面保证能取出 $j$ 个需要敲的次数。$dp[i][k] = min(dp[j][k - 1] + (i - j) \times a[i])$斜率 阅读全文
posted @ 2019-10-14 21:55 Mrzdtz220 阅读(226) 评论(0) 推荐(0)
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 32 下一页