上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 120 下一页
摘要: 这算是决策单调性入门题吧. 我们很容易发现 $f[i]$ 的转移 $p_{i}$ 满足单调性,然后拿单调队列来维护就行. 对于队列中每个元素维护这个元素转移区间的右端点 新加入一个点的时候和队尾比较一下,看队尾是否会被覆盖,弹掉无用元素. code: #include <bits/stdc++.h> 阅读全文
posted @ 2020-04-02 23:06 EM-LGH 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 嘴巴上把这道题切了,但是写代码的时候好多细节都需要注意. 1. 大概可以猜到能表示出的数字比多,但是这一步要用 BFS+hash 才行,因为用 DP 求解的话会有好多无用状态. 2. 做动态规划的时候如果对与状态有限制条件的话比较好写的方法是由合法状态去转移下一步,而不是枚举当前状态去找上一步的状态 阅读全文
posted @ 2020-04-02 09:45 EM-LGH 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 新学了一下决策单调性. 对于这道题,我们可以先考虑 $j<i$ 的情况. 然后我们发现随着 $i$ 变大,$i$ 的决策点不可能减小(因为根号函数的增长速率越来越小,所以一旦被赶超上是不可能追回来的) 然后有两种处理方式:单调队列+二分 or 整体二分. 前者细节较多,后者更好写一些. code: 阅读全文
posted @ 2020-03-30 11:15 EM-LGH 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 对于树边直接转移,然后按照套路拆环,在环上做一个单调队列 DP. 一种方案虽然在一个换上可能算不了,但是一定可以在另一个环上计算到. 仙人掌上 DP 的套路就是遇到树边就按照树上做,遇到环就拆环,做一个环形 DP. code: #include <bits/stdc++.h> #define N 2 阅读全文
posted @ 2020-03-29 23:40 EM-LGH 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 第一道仙人掌题. 由于仙人掌中每条边最多只属于一个环,所以两个在环中的点的最短距离是好算的. code: #include <bits/stdc++.h> #define N 200006 #define setIO(s) freopen(s".in","r",stdin) using namesp 阅读全文
posted @ 2020-03-29 11:58 EM-LGH 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 对于树的情况是简单的. 我们 DFS 这颗仙人掌,对于树边正常转移就行. 然后对于环,我们把环拿出来,然后强制讨论端点选/不选再跑一遍 DP 就行. code: #include <bits/stdc++.h> #define N 200006 #define setIO(s) freopen(s" 阅读全文
posted @ 2020-03-29 11:56 EM-LGH 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 开始的时候没有借助圆方树去思考,思路非常混乱,想了很长时间后冷静下来发现这题不就是分类讨论简单题嘛... 题目不难,分两种情况讨论: 设当前点为中间点(圆点) 起点从一个儿子的子树进入到中间点后进入到另一个儿子的子树. 起点从一个儿子的子树进入到中间点后仍然回到该儿子子树中(相当于上一条的子问题) 阅读全文
posted @ 2020-03-29 01:07 EM-LGH 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 一定注意,这里不要写错: $low[y]>=dfn[x]$,开始的时候把 $dfn[x]$ 写成 $low[x]$ 调了一下午...... 然后根据圆方树优美的性质,我们发现题中要求的就是圆方树上一些点构成的树链的并中圆点个数. 这个问题可以用虚树或树链的并解决. code: #include <c 阅读全文
posted @ 2020-03-28 20:08 EM-LGH 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 圆方树模板题. 建出圆方树. 对于每个方点,只维护方点儿子的最小值,不维护方点父亲的值,这样的话每次修改只会改一个方点. 我们需要支持单点修改,链查询,求 lca. LCT 可以非常方便地维护这些东西,然后如果 lca 是方点的话特判一下方点父亲的点值即可,可以单独开一个命名空间以防止变量名冲突。 阅读全文
posted @ 2020-03-28 12:50 EM-LGH 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 比较好想的建模题. 显然,如果选 $[l,r]$ 的话只要强制选 $[l,r-1]$ 与 $[l+1,r]$ 就行了. 然后 $m=0$ 的话直接在 $[i,i]$ 上扣掉编号大小就行. 如果 $m=1$,就套路的新建一个点,然后练一下限制的编号就行了. code: #include <bits/s 阅读全文
posted @ 2020-03-26 16:40 EM-LGH 阅读(97) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 120 下一页