
------分治------
文章平均质量分 79
分治
StaroForgin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[UNR #6]稳健型选手
被自己蠢到了,果然我就只知道分块,根本想不到分治。原创 2022-08-10 15:18:39 · 340 阅读 · 0 评论 -
[航海协会]身体
我是连分治都没想到的废物。原创 2022-08-04 20:26:37 · 202 阅读 · 2 评论 -
[NOI2019]I君的探险
这种还要分这么多类讨论的交互题真的很烦。原创 2022-08-01 00:03:43 · 353 阅读 · 0 评论 -
[CF1179E]Alesya and Discrete Mat
然而Rainybunny又随切了。原创 2022-06-15 08:33:16 · 180 阅读 · 0 评论 -
[ZJOI2010]贪吃的老鼠
有趣的网络流建图方式。原创 2022-04-12 10:39:50 · 236 阅读 · 0 评论 -
[硫化铂]舰队游戏
天天被OneInDark吊打,还有没有天理呀!ε(┬┬﹏┬┬)3原创 2022-04-02 16:49:01 · 3770 阅读 · 1 评论 -
[CF1603D]Artistic Partition
挺有趣的dp题。原创 2022-03-28 22:48:20 · 522 阅读 · 0 评论 -
[ZJOI2015]醉熏熏的幻想乡
怎么又是车万呀!原创 2022-03-23 23:39:59 · 684 阅读 · 0 评论 -
[硫化铂]旅行
被校长爆杀...原创 2022-03-14 20:56:14 · 349 阅读 · 0 评论 -
[硫化铂]二十
又是OneInDark随切的一天。原创 2022-03-08 22:10:43 · 298 阅读 · 0 评论 -
[硫化铂]传染
又是被OneInDark吊打的一天。原创 2022-02-10 22:54:54 · 461 阅读 · 0 评论 -
[HNOI2012]射箭
卷爷强炸了,发明半平面交算法原创 2022-01-06 16:57:06 · 276 阅读 · 0 评论 -
[海军国际项目办公室]CSP 2020
这场题是真的魔鬼呀原创 2021-11-08 17:30:31 · 171 阅读 · 0 评论 -
[BZOJ2406]矩阵
你不输入n和m交上去甚至还有20pts原创 2021-11-03 21:52:03 · 173 阅读 · 0 评论 -
[ROI 2019 Day2]课桌
显然的结论。。。原创 2021-10-15 16:35:16 · 248 阅读 · 0 评论 -
[CodeFestival 2017J]MST
完了,玩*。玩了玩*原创 2021-10-07 19:35:08 · 137 阅读 · 0 评论 -
[海军国际项目办公室]假人
奇怪的结论,到底是怎么来的。原创 2021-10-04 23:40:56 · 205 阅读 · 0 评论 -
[海军国际项目办公室]古老的序列问题
新鲜小香猪,150元一头。(╯▽╰)好香~~原创 2021-10-04 16:52:50 · 247 阅读 · 0 评论 -
[CF650D]Zip-line
然而并不需要什么数据结构原创 2021-08-19 21:48:52 · 210 阅读 · 0 评论 -
[ABC213H]Stroll
wxk之所以跑这么快其实是因为跑她的代码时评测机坏掉了,时间给它算错了,所以才比我快点点原创 2021-08-09 22:46:49 · 278 阅读 · 0 评论 -
[CF780H]Intranet of Buses
究极卡精度原创 2021-07-23 16:24:01 · 186 阅读 · 0 评论 -
[CF1535F]String Distance
是谁胆大包天竟敢卡jzm!!!原创 2021-06-12 19:51:55 · 327 阅读 · 0 评论 -
[ARC119E]Pancakes
Pancakes题解很水的一道题首先,它最多只能有一次翻转,而它的权值又是相邻的两项去绝对值,所以最多只会影响到两项的权值。假设我们翻转的是l,rl,rl,r,那么我们要求的就是(∣al−al−1∣+∣ar−ar+1∣−∣ar−al−1∣−∣al−ar+1∣)max\left(\left|a_{l}-a_{l-1}\right|+\left|a_{r}-a_{r+1}\right|-\left|a_{r}-a_{l-1}\right|-\left|a_{l}-a_{r+1}\right|\righ原创 2021-05-17 21:51:01 · 205 阅读 · 0 评论 -
[CF1513F]Swapping Problem
Swapping Problem题解很水的一道题我们考虑交换那些数时会对答案产生贡献。我们可以先将所有的线段分成a>ba>ba>b与a<ba<ba<b的两类,分别记作x,yx,yx,y,很明显,同一类中的交换,绝对是不优的。而不同的类中的交换,若x,yx,yx,y没有重合部分,那么也是不优的。对于有重合部分的x,yx,yx,y,它们所产生的贡献就是它们重合部分的两倍。这个手画一下就知道了所以,我们要做的是,从两个集合中找出重合部分最长的两个线段。我们可以先将原创 2021-05-02 10:26:38 · 1755 阅读 · 1 评论 -
[CF1517E]Group Photo
Group Photo题解很容易发现,一个符合条件的序列大概长下面两种样子:P...PC...CP...PC...CP...PC...C(P)C...CPCPC...PCP...P(C)(P)C...CPCPC...PCP...P(C)(P)C...CPCPC...PCP...P(C)第一个就是一段连续的P加一段连续的C,符合这个条件的序列可以通过枚举得到。第二个是两端可能有一个P/CP/CP/C,中间外侧是连续的PPP与连续的CCC,最中间是接连不断的PCPCPC。我们可以根据两端有无P/C原创 2021-04-24 17:38:09 · 301 阅读 · 0 评论 -
[省选联考 2021]卡牌游戏
卡牌游戏题解非常简单的一道题也就是去二分一下极差,然后看每个点作为最大的一个点时是否满足需要翻转的点数量小于mmm。假设当前枚举到点的值为xxx,也就是说所有正面不在[x−mid,x][x-mid,x][x−mid,x]之内的点全部需要翻面,如果翻面后还有点不在这个范围之内,那么我们就只能这个点就铁定不行。关于维护那些点不在这个范围内,因为我们枚举的最大值是递增的,我们可以将aaa排序后用指针维护。关于翻面后是否有值不在这个范围内,我们可以用前后缀最大/小值维护。需要注意的就是当枚举bib_{i原创 2021-04-17 16:57:23 · 571 阅读 · 0 评论 -
[省选联考 2021]宝石
宝石题解很水的一道题首先可以考虑将询问(s,t)(s,t)(s,t)拆成(s,lca(s,t))(s,lca(s,t))(s,lca(s,t))与(lca(s,t),t)(lca(s,t),t)(lca(s,t),t)两部分,离线下来处理。由于在序列PPP中,每种颜色都是唯一的,所以每个节点能在答案序列中所处的位置也是唯一的。我们可以先用倍增的方式更新出来点sss在序列中向前/向后走多少步时能够到达哪个节点。但由于开始开始节点不一定是节点sss,所以我们要离线下来记录下距当前点最近的某种颜色的点原创 2021-04-17 16:46:35 · 249 阅读 · 0 评论 -
[XOGT D]Do Use FFT
Do Use FFT题解调了好久。直接暴力明显是不好的,我们考虑将上式转化一下。设Fk(x)=∏i=1k(x+Bi),G(x)=∑i=1nCi1−AixF_{k}(x)=\prod_{i=1}^{k}(x+B_{i}),G(x)=\sum_{i=1}^{n}\frac{C_{i}}{1-A_{i}x}Fk(x)=∏i=1k(x+Bi),G(x)=∑i=1n1−AixCi很明显,答案ansk=[x0]Fk(1x)G(x)ans_{k}=[x^0]F_{k}(\frac{1}{x})G(原创 2021-03-31 22:28:17 · 269 阅读 · 0 评论 -
[CF739E]Gosha is hunting
Gosha is hunting题解感觉数据范围好像开太小了,听说出题人当时给出的正解是O(n2log n)O(n^2log\,n)O(n2logn)的,但我们可以用凸优化做到O(nlog2n)O(nlog^2n)O(nlog2n)。首先我们该如何控制两种球的使用数量分别达到A,BA,BA,B呢,显然,dp是一种很容易想到的方法,但O(n3)O(n^3)O(n3)的时间复杂度明显是过不了的。考虑我们还有什么方法来控制球使用的数量。首先,我们想到了凸优化,明显,我们用的球越多期望一定是越大的,所以如原创 2021-03-15 22:31:46 · 206 阅读 · 0 评论 -
[BZOJ3636]教义问答手册
教义问答手册题解挺简单的一道二分。首先看到题目首先应该很容易想到dp,毕竟用dp求这个最大值应该是很简单的。但是由于询问太多,我们不可能对每个询问都做一次dp,考虑整体二分。对于二分时,我们处理掉所有当前的过midmidmid的询问。可以通过分别求出左边的dp值与右边的dp值来计算。由于涉及到合并的问题,我们的状态dpi,jdp_{i,j}dpi,j分别要记录它到了哪个点与它在midmidmid处连续选的点的数量,表示选到第iii个点,midmidmid处连续选了jjj个,时的最大值。合并原创 2021-03-02 22:15:53 · 261 阅读 · 0 评论 -
[八省联考2018]林克卡特树
林克卡特树题解挺简单的一道题。原题断kkk条边连kkk条边权为000的边相当于寻去k+1k+1k+1条不相交链出来,将它们连上得到的结果。所以我们要从原树中选取k+1k+1k+1条链出来,使得它们的权值和最大。我们发现恰好k+1k+1k+1条链这个限制是比较难限制的,考虑通过凸优化二分去进行维护。由于链选取的条数关于贡献的函数一定是一个凸包,我们可以去二分通过选取kkk条链的点的切线的斜率,来进行判断。我们将每条路径的贡献减去当前的二分值,再直接用二分去选取不限量的路径,使得权值最大。若dp原创 2021-02-23 08:44:07 · 324 阅读 · 0 评论 -
Token generation
Token generation题解由于某些原因就采用英文名了看到这道题,我们很快就发现使得F(Q)F(Q)F(Q)增加的值,存在这样的构造1...10...01...10...01...10...0,即开头是一段连续的111,之后全是000。基于此,我们可以通过二分的方法找到对于当前的NNN,它的的总位数与后面000的数量。之后,我们思考如何找到第kkk个满足F(Q)=NF(Q)=NF(Q)=N的QQQ。由于它的第一关键字是111的个数,我们可以通过组合数的枚举来计算出它包含的111的个数。原创 2021-02-19 17:53:31 · 384 阅读 · 0 评论 -
[ZJOI2013]K大数查询
K大数查询题解整体二分板子题。其实看到题目应该很容易想到整体二分的。我们可以先二分答案,对于权值区间[l,r][l,r][l,r],我们的询问区间为[L,R][L,R][L,R]。我们可以用一个树状数组维护前缀和,维护大于midmidmid的数的数量的前缀和。我们先将[L,R][L,R][L,R]中大于midmidmid的操作加到树状数组上,再看询问中有多少应该在左区间[l,mid][l,mid][l,mid],有多少应该在右区间(mid,r](mid,r](mid,r]。将在左区间的询问减去原创 2021-02-16 22:14:21 · 230 阅读 · 0 评论 -
[WC2010]重建计划
重建计划题解看到这道题首先应该是很容易想到0/1分数规划的。毕竟那里明摆着一个∑i=1k−1vali∣S∣\frac{\sum_{i=1}^{k-1}val_{i}}{|S|}∣S∣∑i=1k−1vali。我们只需要将下面的分母当做111即可,所以当二分到midmidmid时,若midmidmid可呗构造出来,有∑i=1k−1vali∣S∣≥mid⟺∑i=1k−1(vali−mid)≥0\frac{\sum_{i=1}^{k-1}val_{i}}{|S|}\geq mid\Longleftrig原创 2021-02-16 18:41:38 · 288 阅读 · 0 评论 -
[LibreOJ NOI Round #2]不等关系
不等关系原创 2021-02-15 21:14:50 · 1228 阅读 · 6 评论 -
[八省联考2018]劈配
劈配题解多简单的一道网络流呀原创 2021-02-05 14:38:43 · 178 阅读 · 1 评论 -
[HNOI2014]画框
画框题解多简单的一道题呀!看到这道题,我们应该很容易·想到要把∑Ai,pi\sum A_{i,p_{i}}∑Ai,pi与∑Bi,pi\sum B_{i,p_{i}}∑Bi,pi转化一下原创 2021-02-04 22:14:39 · 266 阅读 · 0 评论 -
[TJOI2018]智力竞赛
智力竞赛题解挺水的一道题。题目相当于给出一个DAG,而你每次可以覆盖一条链,总共n+1n+1n+1条链。应该不会有人跟我一样想成覆盖它能到达的所有点一看到最低奖励值最大,应该是很容易想到二分的。我们可以先将小于我们二分值的点的子图建出来,再求出n+1n+1n+1条链是否可以完全覆盖这个子图。由于我们当前每次只会覆盖掉一条链,所以我们这条链开始的位置一定是一个小于目标二分值的点,否则我们完全可以走到一个小于目标二分值的点再去覆盖。由于需要求出当前DA的最小可交路径覆盖是否小于n+1n+1n+1,我原创 2021-02-04 19:30:43 · 198 阅读 · 0 评论 -
[SCOI2015]小凸玩矩阵
[SCOI2015]小凸玩矩阵题解又一道二分图板子题其实看到第kkk大值最小应该很容易想到二分的。我们可以先二分它的第kkk大值,判断在当前二分的值下,只选不超过二分值的数是否可得到一种选n−k+1n-k+1n−k+1个数的选法,如果可以,就一定有种方法使得第kkk大值不超过当前的二分值。至于判断当前可选的数是否可以选到n−k+1n-k+1n−k+1个,可以通过二分图匹配来进行判断。我们将行与列分成两组,也就是我们二分图的两边,在每个可选位置的行与列之间连边,跑最大匹配。这样匹配出来的行和列一原创 2021-02-04 15:24:42 · 170 阅读 · 0 评论 -
[CF431D]Random Task
Random Task题解容易证明,这个n是有单调性的。证明过程如下:当增加时,即取值区间从变到时,减少了,增加了与。由于是的两倍,所以两者的__builtin_popcount值相等,又增加了一个。故满足条件的数的个数只有在有个1时增加,而不会减少,且每次最多只会增加1。于是,我们就可以通过二分n值对其求解。至于如何求出当前n值下满足条件数的个数,可以先对其进行差分,再通过计数dp求解。当我们在前面位数固定的情况下,后面1的个数也是固定的,设到第位前面已有位1,那么后面原创 2020-08-11 17:08:04 · 154 阅读 · 0 评论