上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 主席树 "例题链接" 学主席树静态求区间第k大之前,应先学会普通线段树如何求整个序列第k大 建一棵值域线段树,每位的值为当前值有多少个。 然后类似平衡树一样求第k大 主席树是一颗可持久化线段树。 我们发现每次更新一个点的值, 只会改变那个点到根上路径的所有点, 那我们可以动态开点, 重新连一条链出来 阅读全文
posted @ 2018-12-18 08:54 zzy2005 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 题解 二分+树状数组 显然最和一个数的值就是rank 那么其它数有什么规律? 从后往前匹配rank,我们可以发现第i个数的rank为还没有匹配的rank第(a[i]+1)大的数 这可以用 树状数组+二分 来求 一个数被选是0, 否则为1 显然sum(i) 表示第i个数前面有多少没被选的 二分找, 最 阅读全文
posted @ 2018-12-17 14:18 zzy2005 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题解 第一问应该一眼就可以看出二分+贪心 问题是第二问。 可以想到$dp$ $f[i][j]$表示前i个木棍,分成j份, 每一份都不超过ans1的方案数 $f_{i,j} =\sum_{k=x}^{i 1} f_{k,j 1}$ $( 第z位到第i位可以作为一段, x为最小的z )$ 显然$x$满足 阅读全文
posted @ 2018-12-15 16:23 zzy2005 阅读(145) 评论(0) 推荐(1) 编辑
摘要: 题解 十分精妙的一道题。 假如没有限制,就是一道简单的dp 当有了限制,很明显会有一些方案不可行。 那么,我们就可以想如何去掉不可行的。 我们可以强制让一些种类超过限定,即让c[i]取(d[i]+1)个 那么容斥一下就可以了 Code cpp include define LL long long 阅读全文
posted @ 2018-12-15 14:42 zzy2005 阅读(107) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 二分答案+dp 如果我们知道答案,贪心地想,让每个人做尽量多的模块一定不会比最优解差 $f[i][j]$表示前$i$个人第一个模块做了$j$块,第二个模块最多能做多少 然后我们枚举第$i$个人做多少块第一个模块,就可以算出第二个模块最多能做多少 取最大值即可 Code 阅读全文
posted @ 2018-11-08 19:24 zzy2005 阅读(106) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 今天复习了一下割点。 关于$tarjan$这里不多讲 $dfn$和$low$数组的定义想必大家都知道 仔细观察一下,可以发现 假设便利$u v$这条边 如果 $low[v] = dfn[u]$ 就说明$v$能到的最小时间戳的点在遍历$u$之后,那么$u$就是割点 最后特判一下$t 阅读全文
posted @ 2018-11-08 17:16 zzy2005 阅读(141) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 一看题没什么思路。写了个暴力居然可过?! Code cpp include define LL long long define RG register using namespace std; inline int gi() { bool f = 0; char c = get 阅读全文
posted @ 2018-11-05 22:31 zzy2005 阅读(152) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 区间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 阅读全文
posted @ 2018-11-05 21:19 zzy2005 阅读(85) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 这题有点神啊。。 我们仔细观察一下,发现两个栈内元素必须为降序 那么有结论 如果有$i using namespace std; const int N = 1010; int a[N], s1[N], s2[N], Min[N], t1, t2, ans[N= 1; i ) M 阅读全文
posted @ 2018-11-04 21:24 zzy2005 阅读(89) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 早就想写线段树分治的题了。 对于每条边,它存在于一段时间 我们按时间来搞 我们可把一条边看做一条线段 我们可以模拟线段树操作,不断分治下去 把覆盖$l r$这段时间的线段筛选出来,用并查集维护联通性,回溯时撤销操作 注意不能使用路径压缩(不能破坏树的结构,方便撤销操作) Code 阅读全文
posted @ 2018-11-01 22:23 zzy2005 阅读(275) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题解 比较水。。 常见套路,维护两个堆 Code cpp include define LL long long define RG register using namespace std; inline int gi() { int f = 1, s = 0; char c = g 阅读全文
posted @ 2018-11-01 20:09 zzy2005 阅读(104) 评论(0) 推荐(0) 编辑
摘要: P3616 富金森林公园 题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N。每一个巨石有一个海拔高度。而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于这个海拔高度的巨石,就会在水面下隐藏。 由于地壳运动,巨石的海拔高度可能会 阅读全文
posted @ 2018-11-01 17:13 zzy2005 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2018-11-01 17:12 zzy2005 阅读(256) 评论(0) 推荐(1) 编辑
摘要: "题目链接" 题解 差分约束 ~~学过的应该都会做~~ 不会的自行百度,这里不多讲 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到其他点都连一 阅读全文
posted @ 2018-11-01 16:57 zzy2005 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义 阅读全文
posted @ 2018-10-30 13:27 zzy2005 阅读(140) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页