分治
分治的题目
CaptainHarryChen
I solemnly swear that I am up to no good.
展开
-
树的点分治
用途统计所有树上两点的路径的信息,常规是O(n2)O(n^2),用此算法可已达到 O(R×nlog2n)O(R\times nlog_2n)(R为维护的数据结构时间复杂度)。主要思路通过寻找树的重心,把树分成若干块(重心的子树),再分治处理每个子树。 (重心是一个结点使它的子树中结点个数最大的值最小)由于重心的单个子树的结点个数一定小于整个树结点树的一半,所以每次使用重心分割,都能将这个树规模至少原创 2017-12-13 21:37:25 · 365 阅读 · 1 评论 -
【AtCoder3910】【Peterzavodsk Contest 001 C】Vacant Seat(二分)
头一次过交互题。题目大意有N(3≤N≤99999,N为奇数)N(3≤N≤99999,N为奇数)N(3\leq N\leq99999,N为奇数)个座位排成一个圈,有男的和女的坐在上面,同性的人不能靠在一起,因为NNN为奇数,所以总共只会留一个空位。有202020次查询机会,返回这个座位的人性别,找出空位的位置。题解如果正常坐位,必然是“男女男女……”,奇偶性相同的地方性别相同。 有...原创 2018-03-24 15:56:46 · 209 阅读 · 0 评论 -
【CodeForces1019E】Raining season(边分治+斜率优化)
题目大意有n个结点的一棵树,每条边有两个权值a,b,第t天经过第i条边花费时间ait+bait+ba_it+b,给定m,求t=0,1,2...m−1t=0,1,2...m−1t=0,1,2...m-1时,最长的路径长度。题解简介边分治类似点分治选择重心,边分治选择一条边,把树分成两边,使得两边的点数最接近。 但对普通的树进行边分治容易退化,如下面这种图会退化为O(n)O(n)O(...原创 2018-08-19 20:42:03 · 1292 阅读 · 0 评论 -
【AtCoder1998】Stamp Rally(整体二分+并查集)
题意我们有一个N (3<=N<=10^5)个结点和M(N−1≤M≤10^5)个边的无向图。 结点编号为1到N,边编号为1到M。边i连接结点ai和bi。保证图连通。在这张图上,Q(1≤Q≤10^5)对兄弟正在参加一项名为Stamp Rally的活动。 第i对Stamp Rally如下: 一个兄弟从结点xi开始,另一个从结点yi开始。(1≤xi < yi≤N) 两个兄弟沿着边...原创 2018-09-17 10:35:17 · 508 阅读 · 0 评论 -
【CodeForces553E】Kyoya and Train(DP+FFT+CDQ分治)
题目大意给一个有向图,有一个人要从111走到nnn,第iii号边花费的钱为cic_ici,花费的时间为111~TTT中随机的值,每种时间的概率为pi,jp_{i,j}pi,j,如果这个人在TTT时刻之后走到nnn,就要交XXX的罚款,求这个人花钱的最小期望。题解令dp[u][t]dp[u][t]dp[u][t]表示当前走到了u号结点,已经花费的时间为t,走到终点的最小期望代价。dp[u...原创 2018-12-25 20:27:55 · 814 阅读 · 0 评论