11 2018 档案
摘要:"题目链接" 题解 二分答案+dp 如果我们知道答案,贪心地想,让每个人做尽量多的模块一定不会比最优解差 $f[i][j]$表示前$i$个人第一个模块做了$j$块,第二个模块最多能做多少 然后我们枚举第$i$个人做多少块第一个模块,就可以算出第二个模块最多能做多少 取最大值即可 Code
阅读全文
摘要:"题目链接" 题解 今天复习了一下割点。 关于$tarjan$这里不多讲 $dfn$和$low$数组的定义想必大家都知道 仔细观察一下,可以发现 假设便利$u v$这条边 如果 $low[v] = dfn[u]$ 就说明$v$能到的最小时间戳的点在遍历$u$之后,那么$u$就是割点 最后特判一下$t
阅读全文
摘要:"题目链接" 题解 一看题没什么思路。写了个暴力居然可过?! Code cpp include define LL long long define RG register using namespace std; inline int gi() { bool f = 0; char c = get
阅读全文
摘要:"题目链接" 题解 区间dp $f[i][j]$表示i~j区间最后一次插入的是$a[i]$ $g[i][j]$表示i~j区间最后一次插入的是$a[j]$ 然后就是普通区间dp转移 Code cpp include define LL long long define RG register inli
阅读全文
摘要:"题目链接" 题解 这题有点神啊。。 我们仔细观察一下,发现两个栈内元素必须为降序 那么有结论 如果有$i using namespace std; const int N = 1010; int a[N], s1[N], s2[N], Min[N], t1, t2, ans[N= 1; i ) M
阅读全文
摘要:"题目链接" 题解 早就想写线段树分治的题了。 对于每条边,它存在于一段时间 我们按时间来搞 我们可把一条边看做一条线段 我们可以模拟线段树操作,不断分治下去 把覆盖$l r$这段时间的线段筛选出来,用并查集维护联通性,回溯时撤销操作 注意不能使用路径压缩(不能破坏树的结构,方便撤销操作) Code
阅读全文
摘要:"题目链接" 题解 比较水。。 常见套路,维护两个堆 Code cpp include define LL long long define RG register using namespace std; inline int gi() { int f = 1, s = 0; char c = g
阅读全文
摘要:P3616 富金森林公园 题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N。每一个巨石有一个海拔高度。而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于这个海拔高度的巨石,就会在水面下隐藏。 由于地壳运动,巨石的海拔高度可能会
阅读全文
摘要:51Nod 1259 整数划分 V2 将N分为若干个整数的和,有多少种不同的划分方式,例如:n = 4,{4} {1,3} {2,2} {1,1,2} {1,1,1,1},共5种。由于数据较大,输出Mod 10^9 + 7的结果即可。 Input 输入1个数N(1 define LL long lo
阅读全文
摘要:"题目链接" 题解 差分约束 ~~学过的应该都会做~~ 不会的自行百度,这里不多讲 opt=1 连一条长度为0的双向边 opt=2 (u v) $len= 1$ opt=3 (v u) $len=0$ opt=4 (v u) $len= 1$ opt=5 (u v) $len=0$ 0到其他点都连一
阅读全文