上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 67 下一页
摘要: 题目链接 "BZOJ2795" "BZOJ2890" "BZOJ3647" 题解 三倍经验! 我们要快速求区间最小循环节 我们知道循环节有如下性质: ①当$L$为循环节长度,那么$s[l...r L] = s[l + L...r]$且$L | (r l + 1)$ ②如果$L$为循环节,那么$L x 阅读全文
posted @ 2018-05-30 15:27 Mychael 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ2823" 题解 "最小圆覆盖" 模板 都懒得再写一次 C++ include include include include include include include define LL long long int define Redge(u) for (int k = 阅读全文
posted @ 2018-05-30 11:40 Mychael 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ2924" 题解 题面有误。。是$45°$ 如果两个点间连线与$x$轴夹角在$45°$以内,那么它们之间连边 求最小路径覆盖 = 最长反链 由于$45°$比较难搞,我们利用复数翻转一下,逆时针旋转$45°$ 这样就求一条从左上到右下的最长链 我们将所有点按$x$排序,令$f[i] 阅读全文
posted @ 2018-05-30 11:30 Mychael 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "洛谷P3759" 题解 树状数组套主席树板题 C++ include include include include include include define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt) define REP(i, 阅读全文
posted @ 2018-05-30 08:52 Mychael 阅读(236) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-29 16:01 Mychael 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-05-29 11:10 Mychael 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ4539" 题解 我们把每次复制出来的树看做一个点,那么大树实际上也就是一棵$O(M)$个点的树 所以我们只需求两遍树上距离: 大树上求距离,进入同一个点后在模板树上再求一次距离 讨论好一些情况即可 然后求子树第$k$大的点要用主席树 没了 C++ include include 阅读全文
posted @ 2018-05-29 09:24 Mychael 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "Mychael vs Kid" 题解 先说说这题的由来及前身 前身 首先有一个很经典的题目: 维护区间加,查询区间$gcd$ 如果强行用线段树维护的话,区间加之后就没法直接确定当前区间的$gcd$,不可直接维护 这个时候就用到了$gcd$的一个性质: $$(a,b) = (a b,b)$ 阅读全文
posted @ 2018-05-28 20:12 Mychael 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ2668" 题解 容易想到由$S$向初始的黑点连边,由终态的黑点向$T$连边,然后相邻的点间连边 但是这样满足不了交换次数的限制,也无法计算答案 考虑如何满足一个点的交换次数限制 当然是拆点 但是一个位置被经过时会被交换两次,而终点和起点都只交换了一次 那么我们就拆成三个点$le 阅读全文
posted @ 2018-05-28 16:05 Mychael 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目链接 "BZOJ1596" 题解 先抽成有根树 设$f[i][0|1][0|1]$表示以$i$为根,儿子都覆盖了,父亲是否覆盖,父亲是否建塔的最少建塔数 转移一下即可 C++ include include include include include include define Redge 阅读全文
posted @ 2018-05-28 11:48 Mychael 阅读(122) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 67 下一页