摘要:
枚举每个人,计算他必定是诚实者的情况下至少有几个人说谎,若超过$t$则他肯定是说谎者。 对于至少有几个人说谎,区间信息可以合并: 每个区间维护最左最右两个人$l,r$以及$f[i][j]$表示$l$和$r$诚实说谎状态分别为$i,j$时他们之间至少几个人说谎。 利用前缀和、后缀和可以在$O(1)$时 阅读全文
摘要:
设$f[i][j]$表示考虑前$i$个人,第$i$个人在前$i$个人中排名为$j$的方案数。 对于大小关系相同的一段,转移可以看成求$k$次前/后缀和,任意一项对另一项的贡献仅和其下标差值有关,FFT加速即可。 时间复杂度$O(mn\log n)$。 阅读全文
摘要:
A. Non-palidromic cutting 考虑无解的情形:只能是形如$aaaaa$、$aaabaaa$、$abababa$这三种情况。 有解时,对于最小划分,答案必定是$1$或者$2$,判断整个串是否是回文串即可。 对于最大划分,设$f[i]$表示前$i$个字符的最大划分,则$f[i]=\ 阅读全文
摘要:
A. Candy Game 显然最优策略是一个一个吃,故比较哪种糖果的个数比较多即可。 B. PreSuffix 对所有串建立AC自动机,那么若前缀$i$是前缀$j$的后缀,说明$i$是Fail树上$j$的祖先。 所以对于询问$(x,y)$,答案就是两点在Fail树上的LCA在原Trie中子树内的字 阅读全文
摘要:
问题等价于每个三角形里至少选择两个点。 考虑拓扑,每次取出度数为$2$的点$x$,代表一个只与最多一个三角形相邻的三角形$(x,y,z)$。 如果$x$已选,那么$(x,y)$以及$(x,z)$都已经被覆盖,无需再选其它点。 否则因为至少要选两个点,选$y$和$z$一定最优。 时间复杂度$O(n)$ 阅读全文
摘要:
A. Assignment Algorithm 按题意模拟即可。 B. Buffalo Barricades 首先通过扫描线求出最终的图中每个点属于哪个区域,以及包含每个区域的最小区域。 然后倒着处理每个询问,依次删掉每个栅栏,也就是将区域的点数合并,并查集维护。 时间复杂度$O((n+m)\log 阅读全文
摘要:
A. Add and Reverse 要么全部都选择$+1$,要么加出高$16$位后翻转位序然后再补充低$16$位。 B. Analyze This bitset加速暴力。 C. Bipartite Graph 每个点向附近$3$个点连边即可。 D. Bridge Building 二分答案,那么对 阅读全文
摘要:
枚举每个$S$作为原点,将所有$D$和$T$极角排序。 枚举每个$T$,那么另一个$T$需要和当前的$T$夹角不超过$180$度,贡献为内部$D$的个数。 双指针后用前缀和查询区间的贡献即可。 时间复杂度$O(n^2\log n)$。 阅读全文
摘要:
A. Area of Effect 首先最优解中必有一个点在圆的边界上。 若半径就是$R$,则枚举一个点,然后把剩下的事件极角扫描即可,时间复杂度$O(m(n+m)\log(n+m))$。 否则圆必然撞到了两个圆,枚举一个点以及两个圆,二分出最大的半径,然后统计内部点数即可,时间复杂度$O(n^2m 阅读全文
摘要:
A. Cakey McCakeFace 按题意模拟即可。 B. Table 枚举下底边,求出每个位置向上延伸的最大长度,枚举每个位置作为右下角,那么单调栈中每一个子矩形都可以对长宽都不超过它的询问产生贡献,通过差分二维前缀和,那么$O(1)$单点修改即可。 为了避免枚举单调栈中每一项,可以在每一项退 阅读全文
摘要:
A. Archery Tournament 用线段树套set维护横坐标区间内的所有圆,查询时在$O(\log n)$个set中二分查找即可。 时间复杂度$O(n\log^2n)$。 B. Box 分类讨论。 C. Connections 考虑强连通分量的Kosaraju算法,会发现只有$2(n-1) 阅读全文
摘要:
从上到下枚举上下底边,那么涉及两行的添加和删除。 首先预处理出对于每一列,每个位置添加和删除时,是否会对往下$k$个里出现这个颜色造成影响。 然后对于每种颜色维护一个长度为$m$的bitset,表示哪些列出现过该颜色。 那么每次修改时,找到前驱和后继,对这一行答案的影响是一段区间加,差分前缀和即可。 阅读全文
摘要:
求出Kruskal重构树,那么重构树上每个点的取值范围是定的。 考虑树形DP,则对于一个点,要么所有点水位相同,要么还未发生合并。 故$dp[x]=up[x]-down[x]+1+dp[l[x]]\times dp[r[x]]$。 时间复杂度$O(nm\log(nm))$。 阅读全文
摘要:
若$1$到$n$之间没有其它点,则$1$到$n$的距离为任意一点到它们距离的差值,按照距离关系判断每个点是挂在$1$上还是挂在$n$上即可。 否则$1$到$n$的距离只可能为任意一点到它们距离和的最小值,抽出$1$到$n$路径上所有点后,对于剩下的每个点判断它应该挂在那个点下面即可。 时间复杂度$O 阅读全文
摘要:
A. Ascending Photo 贪心增广。 B. Boss Battle 当$n\leq 3$时显然$1$步就可以炸死。否则每次可以缩小一格,故答案为$n-2$。 C. Connect the Dots 留坑。 D. Dunglish 按题意模拟即可。 E. English Restauran 阅读全文
摘要:
因为两个人方案的对称性,可以将$k$除以2,转化为在$n-1$个间隔中设置若干断点,求第$k$小的增量。 对于选中的相邻的断点$(a,a+1)$和$(b,b+1)$,增量为$|x_a-x_{b+1}|$。 将绝对值拆开,用可持久化权值线段树优化建图,然后求$k$短路即可。 时间复杂度$O(n\log 阅读全文
摘要:
A. Airport Coffee 设$f_i$表示考虑前$i$个咖啡厅,且在$i$处买咖啡的最小时间,通过单调队列优化转移。 时间复杂度$O(n)$。 B. Best Relay Team 按题意模拟即可。 C. Compass Card Sales 按题意模拟即可。 D. Distinctive 阅读全文
摘要:
显然每个区间最多只有一种绝对众数,故每个数值独立,考虑枚举每种数值作为绝对众数然后计算贡献。 设$s_i$表示前$i$个中该数值的出现次数,则要选择一对下标$l,r$满足: $0\leq l<r\leq n$。 $2s_r-r>2s_l-l$。 根据数字出现位置,假设它出现了$k$次,则可以将序列划 阅读全文
摘要:
A. Advertising Strategy 最优策略一定是第一天用$y$元,最后一天再用$x-y$元补满。 枚举所有可能的$y$,然后模拟即可,天数为$O(\log n)$级别。 时间复杂度$O(x\log n)$。 B. Byteland Trip 留坑。 C. Carpet 对树进行轻重链剖 阅读全文
摘要:
A. Auxiliary Project 完全背包。 B. Boolean Satisfiability 设$t$为出现过的变量个数,若同时存在某个变量以及其反变量,则答案为$2^t$,否则答案为$2^t-1$。 C. Consonant Fencity $O(2^{19})$枚举所有辅音字母的大小 阅读全文