11 2017 档案
摘要:因为两个人方案的对称性,可以将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})枚举所有辅音字母的大小
阅读全文
摘要:斐波那契数列满足f(n-1)f(n+1)-f(n)^2=(-1)^n。 枚举-1的符号,根据二次剩余即可求出最多4个可能的f(n+1)的值。 那么根据f(n)和f(n+1),对矩阵做BSGS求出最小的n即可。 时间复杂度O(\sqrt{P}\log P)。
阅读全文
摘要:A. Ducks in a Row 当n\times k>|S|时,显然无解。 否则最优解中翻转的区间一定两两不相交,设f[i][j][x][y]表示考虑前i个位置,第i个位置翻转情况为j,当前连续段长度为x,已有y个长度至少为n的D连续段的最少翻转次数,然后转移
阅读全文
摘要:A. Chrome Tabs 当n=1时答案为0,当k=1或k=n时答案为1,否则答案为2。 B. OverCode 按题意模拟即可。 C. A message for you! 按题意模拟即可。 D. Test Cases 枚举左端点,往右枚举右端点,同时维护每个数字出现次
阅读全文
摘要:问题等价于树形依赖背包,允许一条链每个点各免费一次。 设f[i][j]表示按DFS序考虑到i,体积为j的最大收益。 先放入不能免费的物品,等遍历完儿子后再放入必选的物品,那么i到根路径上所有点都只算了不能免费的部分。 然后将DFS序翻转,设h[i][j]表示按DFS序考虑到i
阅读全文
摘要:A. Odd Palindrome 所有回文子串长度都是奇数等价于不存在长度为2的偶回文子串,即相邻两个字符都不同。 B. Enlarging Enthusiasm 注意到方案数不超过(n-1)\times (n-1)!,爆搜出所有可行方案即可,需要大量常数优化。 C. Fear Facto
阅读全文
摘要:建立新图,原图中每条边在新图中是点,点权为w_i,边权为两个字符串的LCP。 对字典树进行DFS,将每个点周围一圈边对应的字符串按DFS序从小到大排序。 根据后缀数组利用height数组求LCP的原理,类似地可以得到: 令h_i=LCP(str_i,str_{i+1}),则$LCP(str_
阅读全文
摘要:起点/终点向每个圆的切点连边。 任意两个圆的公切点之间连边。 同一圆上相邻两个关键点之间连边。 然后Dijkstra求最短路即可,时间复杂度O(n^3)。 注意判边可行性的时候要忽略这条边来源的圆,可以提高精度。
阅读全文
摘要:二分答案mid,若存在一条路径满足|ave-k|<mid,则答案至多为mid-1。 若ave\leq k,则\sum(w-k)\leq 0,且\sum(k-w-mid)<0;若ave\geq k,那么同理。 预先树分治处理出所有到重心的路径的信息,并按w-k排序。 那
阅读全文
摘要:A. Balloon Robot 假设机器人0时刻位于0号位置,那么每个气球所需的时间为(s_a-b)\bmod m。 将所有气球按这个时间排序,枚举每个气球的时间作为偏移量,得出最优解即可。 时间复杂度O(p\log p)。 B. Expected Waiting Time 设$f
阅读全文
摘要:对修改操作按时间分治,设solve(l,r,n,m)为考虑时间在[l,r]的修改操作,作用范围是n个点,m条边的图。 若l=r,则暴力Tarjan统计桥边个数即可。 否则提取出[l,r]内涉及修改的所有边E,并将端点标记为V,显然|V|=O(|E|)。 加入m
阅读全文
摘要:A. Alien Sunset 暴力枚举答案即可。 B. Breaking Biscuits 等价于选择一对距离最小的平行线夹住所有点。 枚举一条边,计算两侧所有点到这条直线的距离的最大值即可。 时间复杂度O(n^3)。 C. Cued In 按题意模拟即可。 D. Deranging Hat
阅读全文