摘要:
题解: solution Code: A. Apple Business B. Balanced Diet C. Line-line Intersection D. Master of Data Structure E. Minimum Spanning Tree F. Mini-game Befo 阅读全文
摘要:
要找的就是这棵树的带权重心,以带权重心为根时每棵子树的权值和不超过总权值和的一半。 因此按$\frac{v[i]}{\sum v[i]}$的概率随机选取一个点$x$,则重心有$\frac{1}{2}$的概率落在$1$到$x$的路径上,期望随机次数为$O(1)$。 随机方式可以直接随机一个$1$到$\ 阅读全文
摘要:
将每个不是障碍的格子标号,设三只狼的位置分别为$A,B,C$,羊的位置在$D$。合法状态中强行限制$A<B<C$,这样状态数只有$\frac{n^8}{6}\approx 1.6\times 10^7$。 设$f[S],g[S]$表示目前局面是$S$,狼/羊正在决策,最优情况下羊会不会被围住。 若$ 阅读全文
摘要:
首先特判多边形面积$=0$的情况,此时内部没有点,答案只会在顶点处取到。 对于面积$>0$的情况,离线询问,将所有多边形合在一起得到平面图,然后求出对偶图,那么每条多边形边的两侧分别对应对偶图中两个域。 每个多边形把这些域分成内外两个连通块,也就是保留除了多边形边之外的所有边后对偶图的连通情况。 把 阅读全文
摘要:
设$base$表示直接能看到的面积,$f[i]$表示仅去掉线段$i$后新增的面积,$g[i][j]$表示仅去掉线段$i$和$j$后新增的面积。 删除一条线段的答案为$base+\max(f[i])$。 删除两条线段的答案为$base+\max(g[i][j]+f[i]+f[j],f最大值+f次大值) 阅读全文
摘要:
若$R=0$,那么显然答案为离原点最远的点到原点的距离。 否则若所有点都在原点,那么显然答案为$R$。 否则考虑二分答案$mid$,检查$mid$是否可行。 那么每个点根据对应圆交,可以覆盖圆上的一部分,每个可行方案都可以通过平移使得刚好卡住某个交点。 枚举每个交点,算出圆上$n$个位置的坐标,然后 阅读全文
摘要:
若仅保留这$k$个点仍然有环,那么显然无解。 否则设$A$表示这$k$个点的集合,$B$表示剩下的点的集合,因为是竞赛图,每个集合内部的拓扑关系是一条链,方便起见将所有点按照在所在集合的链上的位置进行重标号。 对于$B$中每个点$i$,求出$l_i$表示最小的$j$,满足$B_i\rightarro 阅读全文
摘要:
离线处理所有询问。 对于$r-l\leq 50$的情况: 按照串长从$1$到$51$分别把所有子串按照第一位字符为第一关键字,上一次排序结果为第二关键字进行$O(n)$基数排序。 同理也可以用上一次比较结果来判断这一次某两个子串是否相同。 对于每个询问,找到排序结果中对应的区间,在里面二分出起点$x 阅读全文
摘要:
设第$i$个区间的左端点为$a[i]$,区间长度为$len$,要覆盖的部分的长度为$all$,因为区间左端点递增,所以最优方案中它们的位置仍然递增。 对于链的情况,要满足三个条件: 1. 区间$i$可以接上区间$i-1$ 设$f[i]$表示最优解中第$i$个区间左端点的位置,则$f[i]=\min( 阅读全文
摘要:
将所有物品按照$b$的选择顺序排序,则先手在任意前$i$个物品中最多只能拿走$\lceil\frac{i}{2}\rceil$个物品。 将每个物品的价值设为$a+b$,那么答案为先手拿走的价值和减去所有物品的$b$之和,目标是最大化先手拿走的价值和。 如果不考虑修改,则满足拟阵,可以贪心选取,修改时 阅读全文
摘要:
设$f0[i][j][x][y][S]$表示盗贼位于$(i,j)$,守卫位于$(x,y)$,每棵苹果树苹果数量为$S$,盗贼先手时盗贼还能偷多少苹果。 设$f1[i][j][x][y][S]$表示盗贼位于$(i,j)$,守卫位于$(x,y)$,每棵苹果树苹果数量为$S$,守卫先手时盗贼还能偷多少苹果 阅读全文
摘要:
假设最大的圆半径为$R$,以$2R$为大小将地图划分为一个个格子,那么每个圆只需要检查圆心在附近$9$个格子内部的所有圆。 在当前圆的半径不足$\frac{R}{2}$时重构网格,那么最多重构$O(\log R)$次,且每个圆最多被检查常数次。 时间复杂度$O(n\log n\log R)$,利用H 阅读全文
摘要:
题意同3495,但是内存限制收紧了,不能采用3495的前后缀优化建图的方式。 注意到“每个集合恰好选择一个点”可以放宽成“每个集合最多选择一个点”,对于最后求出的方案里,如果某个集合没选点,任选一个就好了。 考虑2-SAT建图,有两类边: 1. 对于每条给定的边$(u,v)$:如果不选$u$就必须选 阅读全文
摘要:
令先手为$A$,后手为$B$,将相邻同色棋子合并成块,首先特判一些情况: 无视所有大小为$1$的块,考虑剩下块里相邻两块,它们往外扩张比往内缩更优: 如果是形如[A_A]___B__A__BA____B___[AA_A],两边同色,所以中间这些块(包括位置)可以删除,不影响游戏结果。 如果是形如[A 阅读全文
摘要:
显然每一位的限制独立,对于每一位求出仅限制该位下的最大数,然后求最小值即可。 假设当前要求数字$d$的答案: 考虑填数字的过程,可以看作依次考虑一个序列中的每个数,当前缀和$<0$时退出。 设$dp[i][j][k]$表示正在考虑最低的$i$位,高位部分有$j$个$d$,第$i$位能不能填$0$为$ 阅读全文
摘要:
考虑任意一棵生成树,它的代价是一个一次函数。 因此所有生成树的最小值随着时间变化呈现出的是一个上凸壳。 三分查找最大值即可。 时间复杂度$O(m\log m\log w)$。 阅读全文
摘要:
A. Drone With a Camera 三分套三分。 B. Fibonaccis’ vouchers 考虑用最少的Fib数表示一个数,只需要从大到小贪心选取每个Fib数。 将一个数写成Fib进制,可以得到一个$01$串,满足没有连续两个$1$。 从高位到低位逐位确定答案的每一位是$0$还是$1 阅读全文
摘要:
将所有$A$和$B$混在一起排序,那么每个$B$要匹配一个$A$,从左往右依次考虑每个数: 如果是一个$B$: 如果左边没有多余的$A$,那么将其放入堆$q_C$中,表示这个$B$还未匹配。 否则选择左边代价最小的$A$和这个$B$进行匹配,并把代价取反,加上这个$B$往右匹配的贡献后放入堆$q_B 阅读全文
摘要:
二分答案,转化成求最少的路径,覆盖住所有权值$\leq mid$的点。 建立二分图,若$i$的后继为$j$,则连边$i\rightarrow j$,求出最大匹配,则点数减去最大匹配数即为最少需要的路径数量。 特别地如果某个点$i$的权值$>mid$,则它可以不经过,连边$i\rightarrow i 阅读全文
摘要:
首先若存在多个连通块,那么答案显然是$+\infty$。 否则以$m$为根,每棵子树的根节点都最多只能放一个金币,且这些子树之间互不干扰。 对于一棵父亲为$m$的子树,最优方案下一定可以将子树剖分成若干条祖先到孙子的链,每条链中每个点$x$往上贡献$\lfloor\frac{v[x]}{2}\rfl 阅读全文