构造加逊

Make It Connect

题目链接

  • 题意

    给定一个无向图 \(E\) ,每次操作需要选择一个点 \(u\) ,然后对其余的的所有点 \(v\) 进行操作,如果 \((u, v)\in E\) 则删去这条边,否则将这条边加入图中,求最少几次类似操作能够使得图联通并输出操作方案

  • 做法

    首先统计联通块数量以及各点的度数

    • 当原图为连通图时,答案显然为 \(0\)

    • 当图中存在一个度数为 \(0\) 的点,答案显然为 \(1\)

    • 当存在一个连通块不是团时,答案也为 \(1\)

      在该连通块中找到任意一个度数小于该连通块大小减一的非割点,并对其进行操作。因为不是团,因此在操作后依然保证原有连通块的联通,且能与其他连通块连边,固操作正确性有保障。

    • 当存在三个及以上的连通块时,答案为 \(2\)

      第一步为任选一个点进行操作,此时连通块的数量显然为会变成 \(2\) ,并且其中一定有一个连通块不是团,此时即为上一种情况,不再赘述。

    • 最后一种情况,两个连通块均为团,答案为较小连通块的大小。

      操作为对小连通块中每个点均进行操作,正确性不难证明。

Range = √Sum

题目链接

  • 题意

    给定一个 \(n\) ,构造一个长度为 \(n\) 的无重复数字的数列,且对于任意 \(i\) 满足 \(1\leq a_i \leq 10^9\) ,且有

    \[\max\limits_{1\leq i\leq n}\{a_i\} - \min\limits_{1\leq i\leq n}\{a_i\} = \sqrt{\sum\limits_{i = 1}^na_i} \]

  • 做法

    对于 \(n\) 分奇偶讨论,讨论时规定 \(d\) 为极差, \(S\) 为数列中各元素和。

    • \(n\) 为奇数的时候

      1.先以 \(n\) 作为中位数构造一个公差为 \(1\) 的等差数列

      \[d = n - 1, S = n ^ 2 \]

      2.将全部数字 \(+2\)

      \[d = n - 1, S = n^2 + 2n \]

      3.将非首尾的任意元素 \(+1\)

      \[d = n - 1, S = n^2 + 2n + 1 \]

      4.将首尾元素分别 \(\mp1\)

      \[d = n + 1, S = n^2 + 2n + 1 =(n + 1)^2 \]

    • \(n\) 为偶数时

      1.考虑直接构造首项为 \(\frac{n}{2}\) ,公差为 \(1\) 的等差数列

      \[d = n-1, S = n^2-\frac{n}{2} \]

      2.从第 \(\frac{n}{2}+1\) 项开始,使得后面全体元素 \(+1\)

      \[d=n,S=n^2 \]

Equal Tree Sums

题目链接

  • 题意

    给定一个 \(n\) 个点的树,为每一个树赋一个绝对值不大于 \(10^5\) 的点权,使得任意一个点被移除后,剩余连通块的权值和均相等。

  • 做法

    对树进行黑白染色,考虑树上一点 \(u\) ,若为黑点则权值为 \(-deg_u\) ,白点则权值为 \(deg_u\)

    正确性不难证明,首先明确每条边会对该边的两端点有 \(\pm1\) 的贡献,因此全树的点权和为 \(0\) 。对于度数为 \(x\) 的一点,在将其删去后树会变为 \(x\) 个连通块,他对于每个连通块的贡献也一定是 \(\pm1\) ,因此最后剩余连通块的权值能够保证相等。

Diane

题目链接

  • 题意

    构造一个长度为 \(n\) 的字符串,使得全部子串的出现次数均为奇数。

  • 做法

    考虑一个长度为 \(n\) 的全 \('a'\) 串,其长度为 \(k\) 的子串会出现 \(n - k + 1\) 次,对 \(n\) 分奇偶讨论,可以得出

    \[\begin{cases}奇数长度子串出现奇数次,偶数长度子串出现偶数次 & n\;是奇数\\奇数长度子串出现偶数次,偶数长度子串出现奇数次 & n\;是偶数\end{cases} \]

    那么我们可以考虑将 \(n\) 拆分为两部分,一部分为奇数长度的全 \('a'\) 串,另一部分为偶数长度的全 \('a'\) 串,实现也很简单,只需要在两个全 \('a'\) 串中间插入非 \('a'\) 字符即可。

Strange Housing

题目链接

  • 题意

    给一个 \(n\) 个点, \(m\) 条边的图,考虑对 \(n\) 个点黑白染色,要求每条边两边的点为异色,不满足的边将被删除,求任意一个能保证 \(n\) 个点联通的方案。

  • 做法

    首先需要明确的是,如果原图不是连通图答案为 NO ,否则为 YES

    显然我们可以通过找到生成树后进行黑白染色构造可行解,可以通过 bfs 来实现,如果当前点的邻居存在被染色的,那么无需对该点染色,否则需要对该点染色。

posted @ 2023-04-16 21:32  Jadebo1  阅读(22)  评论(0编辑  收藏  举报