摘要:
思路 晃一眼题目,这不和这道题一样吗? 但是再仔细一看,有有些不一样,要求了起点至少到多少个点,不要求起点互通,求的也不是最小的 \(d\),而是 \(d\) 之和。 首先,很容易地发现,这道题再去二分肯定不现实,每个点都去二分一次,所需要的时间也很恐怖。 所以我们尝试从其他的方面入手。 可以发现, 阅读全文
摘要:
思路 很简单的一道题,洛谷大概都不会开放题解通道?(实际上貌似每场比赛的 A 都没开放?) 显然,对于原数组较小的数,我们尽量让大的数,取全排列的较小的数,这样可以保证差是逐渐变小的,也就让 \(c\) 数组差异变大。 所以直接拿个 struct 存,然后两边排序就好。 AC code #inclu 阅读全文
摘要:
写在前面 做 E1 的时候,直接想的正解,所以 E2 不需要改代码,E1 题解我也直接交的正解,详见我的题解。 在这里呢,主要是稍微证明一下询问次数不会超,如下: 可以发现,有余数的情况,只会增加两次询问,而后面的操作会增加 \(\frac n k\) 次情况,因为 \(k\le n\le k^2\ 阅读全文
摘要:
思路 首先考虑,\(n\) 是 \(k\) 的倍数的情况,直接枚举询问所有每一段就好,然后输出每一段的异或和的异或和。 如上图,每次询问都没有重叠部分,颠转互不干扰。 那么,\(n\) 不是 \(k\) 的倍数的情况呢? 可以看到,与第一种情况的区别就是末尾多了一小截,那么我们需要考虑如何计算这一小 阅读全文
摘要:
前言 赛时没调出来,赛后调了一个上午,最后发现是有个地方没清零。 思路 首先对于位置 \(i\),我们必须要保证进行的操作中,最后一次出现 \(i\),\(i\) 的后面一定是 \(a_i\)。 那么我们考虑统计所有位置上的要求,用有向边链接,那么就会出现一个有环有向图(一定有环,因为点数等于边数) 阅读全文
摘要:
思路 看着无从下手,实际上又是一道诈骗题。 假设原数列不存在 \(0\),那么我们可以直接加入 \(0\),然后游戏结束,假设答案是 \(k\)。那么,如果我们选择加入 \(k\),来试图让答案变大,那么 Bob 就会移除一个数,最优的话是 \(1\),这样的话,你无论加入 \(1\) 还是 \(0 阅读全文
摘要:
思路 题目问的是改 \(i\) 位,能不能让原串变成回文串,其中 \(0\le i \le n\)。 首先,我们可以统计前后对称位置不一样的对数,记为 \(k\),那么至少也得改 \(k\) 次,假设剩下前后对称位置一样的有 \(m\) 对(如果 \(n\) 为奇数,则最中间的一位不计入 \(m\) 阅读全文
摘要:
如果把每个方格看作一个点,就是这道题的子任务 B 了。 思路 首先看到目标是保证任意方格可以互通,就可以想到应该是一道强连通分量的题,只要按照题目的要求建图,就可以得到一个有向图,那么用 tarjan 缩点后,就可以得到一个无环的有向图。 这样一个无向图,对于每个有入度有出度的点,肯定都是按照顺序走 阅读全文
摘要:
思路 应该很容易想到使用树形 dp。 令 \(f_{u,i}\) 代表,只考虑 \(u\) 为根的子树,\(u\) 的编号为 \(i\) 的情况下,最小的编号总和。 那么我们可以用 \(u\) 的儿子 \(v\) 来更新 \(f_{u,i}\)。 转移方程 \(f_{u,i}=\sum_{v\in 阅读全文
摘要:
建议先看简单版本以及我的题解。 思路 可以发现困难版本比简单版本唯一不一样的地方就是可以给糖也可以不给,可以收糖也可以不收。 首先还是需要求和,如果无法平分,肯定无解,再算出平均数 \(s\)。 还是考虑每一个 \(a_i\),如果 \(|a_i-s|\) 不是二次幂,那么肯定必须同时给糖和收糖,判 阅读全文