06 2023 档案

摘要:CF1400E Clear the Multiset 一道经典简单的分治 由贪心可知,对于一段区间[L,R],一共有两种处理方式 1.一个一个减,次数为l-r+1 2.先区间减,直到最小的减没了,在考虑最小值隔开的两个区间。如果有多个最小值,其实也不影响,再往下分的时候一定会分开。区间答案就是 $m 阅读全文
posted @ 2023-06-24 19:07 DPD 阅读(45) 评论(0) 推荐(0)
摘要:CF1827E Bus Routes 很有思维含量的一道题。 任意钦定一个根 $rt$,对于每个节点,如果它不能到达,那么他的子树内所有点一定也不能到达,因此,我们只用考虑每一个叶子节点的情况。对每个叶子节点 $u$,设 $low_{u}$ 表示他能通过一条路线到达的最浅的祖先。对于任意两叶子节点, 阅读全文
posted @ 2023-06-23 21:44 DPD 阅读(31) 评论(0) 推荐(0)
摘要:[AGC015E] Mr.Aoki Incubator 假设时间无限大,那么所有点的位置顺序就是他们的速度顺序。也就是说,把他们按照速度排序,这个顺序就是最终顺序。对于两个点 $i$ ,$j$,如果 $v_{i}^{} > v_{j}^{}$ && $x_{i}^{}<x_{j}^{}$,或 $v_ 阅读全文
posted @ 2023-06-23 09:05 DPD 阅读(23) 评论(0) 推荐(0)
摘要:每当我们看到“最大值最小”“路径上的最大最小值”等字眼时,我们就可以考虑并查集。 我们可以尝试把这些问题转化为某种意义上按单调顺序的合并,利用并查集求解答案。以下时两例并查集的巧妙应用。 CF1213G Path Queries 注意“最大权值不大于q”,加上允许离线,我们可以把边按照权值排序,并一 阅读全文
posted @ 2023-06-22 22:24 DPD 阅读(70) 评论(0) 推荐(0)
摘要:CF708C Centroids 一道换根 DP。 我们可以先找出树的一个重心,那么对于其他所有不是重心的点,它不能成为重心时因为它父亲的那一支节点数大于一半,而可以改造成功,则意味着可以在他父亲那一支里,可以找到子树u,使 $siz[u] \le n/2$ && $siz[fa]-siz[u] \ 阅读全文
posted @ 2023-06-22 20:53 DPD 阅读(54) 评论(0) 推荐(0)
摘要:题目链接 有一条无限长的数轴,上面有 nn 个坑,第 ii 个坑的位置为 x_ixi​。你将要在数轴上再放置 nn 个球,第 ii 个将要放到的位置为 y_iyi​。每当有一个球被放上去之后,它就会滚落到离它最近的一个坑里并填上那个坑。如果有两个坑都离它最近,那么它会落到左边的里面。 现在 xuan 阅读全文
posted @ 2023-06-22 14:01 DPD 阅读(31) 评论(0) 推荐(0)
摘要:UVA12222 山路 题意: - - 一个山路只有一条车道,因此不能有两辆方向相反的车同时在车道内。同时,为了保证安全,车道内不能超车,且同向行驶的车间距必须大于10分钟。现在给你n辆车,三个参数依次表示行驶方向,到达时刻,行驶时间。问如何安排能使最后一个通过的车通过时的时刻最小,输出这个值。 分 阅读全文
posted @ 2023-06-21 16:07 DPD 阅读(39) 评论(0) 推荐(0)
摘要:因为是哈密顿回路,所以每个点度数为2 假设我们已经考虑了i个点,其中b个B,w个W。 若存在x条由{1,2,...n}连向{i+1,...2n}, 那么{1...n}内部的连边数为(2*i-x)/2 而只有不同颜色的点会连边,故(2*i-x)/2<=2*min(w,b) x>=2(w+b)-4min 阅读全文
posted @ 2023-06-20 16:36 DPD 阅读(98) 评论(0) 推荐(0)
摘要:CF1239E Turtle 通过观察我们会发现,第一行一定单调递增,第二行一定单调递减,否则不是最优。再次前提下,乌龟的最优方案只有两种,要么一直向右,最后向下,要么先向下,再一直向右。因此,我们将最小的两个数字放在左上角和右下角,然后把余下数字填入剩余位置,并希望下式最小 显然,这是一个背包问题 阅读全文
posted @ 2023-06-20 11:43 DPD 阅读(35) 评论(0) 推荐(0)
摘要:[AGC028D] Chords 题意:给定一个圆, 圆上均等地放着 2n2n 个点, 已有 kk 对点之间连好了线段, 从中选择剩下 n−kn−k 对点随意连线段(每个点只连一条线段). 两点联通当且仅当两点在同一条线段上或两点所属于的线段相交, 求所有连边方案中, 联通块的个数和. 对于圆/正多 阅读全文
posted @ 2023-06-19 12:00 DPD 阅读(25) 评论(0) 推荐(0)
摘要:[AGC034E] Complete Compress 考虑这道题之前,我们先想一个经典问题: 对于一颗有根树,每个节点上可能放一颗棋子,且不同子树上的棋子可以相互抵消。那么,我们设maxson为最大子树包含的棋子数,sun【root】为root的所有子树的棋子总数,很容易得到,如果sum【root 阅读全文
posted @ 2023-06-19 08:54 DPD 阅读(26) 评论(0) 推荐(0)
摘要:P4145 上帝造题的七分钟 2 / 花神游历各国 这道题解法很多,但我主要想提一下势能这个概念。 就像重力势能一样,一个物体只会往下落,且到达零势面之后不会再继续往下落(虽然和真实情况有出入) 因此,我们往往可以利用这个特性,来减少许多不必要的操作; 对于这道题而言,我们发现一个数如果已经开到1, 阅读全文
posted @ 2023-06-18 22:38 DPD 阅读(26) 评论(0) 推荐(0)
摘要:CF888F Connecting Vertices 题号很吉利 我们把这个正多边形展开成一条线段,转化成经典区间DP问题。毕竟n3的算法也不是很多 然后,对于题目中要求两条连线不能相交,相当于线段上的两个区间要么相离,要么相切,要么包含。对于不能连的两个点,在DP的时候特判一下就行。 #inclu 阅读全文
posted @ 2023-06-18 22:10 DPD 阅读(15) 评论(0) 推荐(0)
摘要:UVA12716 GCD等于XOR GCD XOR 一道数学题。 首先,我们可以知道,a-b>=gcd(a,b)=c; 其次,a-b<=a xor b=c; 综上,可得a-b=c,即a-b=a xor b. 由于范围不大,直接枚举。 第一层枚举c(因为c较少),第二层枚举a,(b=a-c) 再判断c 阅读全文
posted @ 2023-06-18 21:59 DPD 阅读(27) 评论(0) 推荐(0)
摘要:[ABC282Ex] Min + Sum 一道分治题。比较新的地方在于,别的题都是按中点为M分治,而这道题是按最小值为M分治。记录b的前缀和sum。【L,R】最小值为M,则分为【L,M-1】,【M+1,R】。 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2023-06-18 21:52 DPD 阅读(56) 评论(0) 推荐(0)
摘要:CF598E Chocolate Bar 一道简单的DP,虽然用搜索写的。我们用f(i,j,z)表示把X×Y的巧克力分成总大小为Z的小块所需最小代价。每次掰开的方式有两种,横着掰和竖着掰,故有两种转移。 #include<bits/stdc++.h> using namespace std; int 阅读全文
posted @ 2023-06-18 21:39 DPD 阅读(53) 评论(0) 推荐(0)