![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
构造
mayaohua2003
这个作者很懒,什么都没留下…
展开
-
Codeforces gym 101173 L
不妨令所有变量以v1v^1v1为基准,相同为000,不同为111。那么考虑每个变量在另两组取值,可能是00,01,10,1100,01,10,1100,01,10,11。000000意味着在三组中都相同,可以用xi→!xix_i\to !x_ixi→!xi来限制。由于三组变量互相不完全相同,因此01,10,1101,10,1101,10,11中至少有两组出现。事实上,如果三组都出现了,显然无解,因为这时候令一组变量取值v∗v^*v∗在这三组中都取111,000000那组取000,那么任意选择(i,j原创 2020-12-25 22:10:21 · 219 阅读 · 0 评论 -
Codeforces gym 101221 A
这题wqy讲过,完全不懂。事实上,对于∀n≥3\forall n\geq 3∀n≥3,下面我们都可以给出一个nnn步的构造。这显然是一个下界:考虑定义一个局面的势能是iii和i+1i+1i+1都有箱子且种类不同的个数,初始局面势能是2n−12n-12n−1,最终局面势能是111,每次操作至多减少222的势能,因此至少要nnn步。如何构造呢?对于3≤n≤73\leq n\leq 73≤n≤7,我们都可以手构或搜索出一个nnn步的解。事实上,对于n=4∼7n=4\sim 7n=4∼7,有一个nnn步的解只原创 2020-12-25 21:48:10 · 242 阅读 · 0 评论 -
Codeforces gym 101190 C
仙人掌可以看作是在一棵树上加入若干个边不相交的简单环所得到的无向图。那么我们分别考虑构造树和简单环,再尝试将它们组合起来,最终得到构造仙人掌的算法。树的构造可以考虑以任意节点作为根节点,DFS递归构造每个节点的子树。要构造某个节点xxx的子树,首先我们依次递归xxx的每个儿子yyy的子树,再将yyy的子树与节点xxx合并到同个图,顺便加入xxx与yyy之间的边。若我们将节点xxx设为颜色111,节点yyy设为颜色222,xxx所在图中其它节点设为颜色333,即可通过对xxx所在图中颜色111和222之间点原创 2020-12-24 11:05:43 · 155 阅读 · 0 评论 -
Codeforces gym 101142 B
简单构造题。首先转化为有xxx个人左右都是男生,yyy个人左右都是女生。接着可以发现这相当于隔222个位置的人之间,有xxx组都是男生,yyy组都是女生。先考虑另一个问题:一个长为nnn的环,有xxx对相邻的人都是男生,yyy对相邻的人都是女生,问有解条件。显然需要满足x+y≤nx+y\leq nx+y≤n且与nnn奇偶性相同,且x+y=nx+y=nx+y=n的话当且仅当x=nx=nx=n或y=ny=ny=n时有解(全为男生或全为女生)。如果x+y≤n−2x+y\leq n-2x+y≤n−2且与nnn奇原创 2020-12-21 22:32:38 · 183 阅读 · 0 评论 -
Codeforces gym 101471 G
若当前模式非空,考虑包含它的n∗mn*mn∗m的最小矩形,则它的四条边上都有满单元格。那么经过一次操作后,往外扩一格得到的(n+2)∗(m+2)(n+2)*(m+2)(n+2)∗(m+2)的新矩形四条边上都至少有两个满单元格,改变至多一个格子的状态后,四条边上仍至少有一个满单元格。这说明一个n∗mn*mn∗m的模式,经过一次操作后至少会变成(n+2)∗(m+2)(n+2)*(m+2)(n+2)∗(m+2)的。考虑倒推,若现在的模式是n∗mn*mn∗m的,我们尝试找出上一次的(下面的做法说明了如果存在,这是原创 2020-12-21 22:22:58 · 200 阅读 · 0 评论 -
Codeforces Round 1404 简要题解
A. Balanced Bitstring略B. Tree Tag略C. Fixed Point Removal先考虑对固定的数组aaa如何求解。显然如果某个初始的i<aii<a_ii<ai一定不可移除,否则我们为了移除它,需要某个时刻在[1,i−1][1,i-1][1,i−1]之间移除恰好i−aii-a_ii−ai个。那么我们从左到右扫描,记录当前可移除的最大个数sumsumsum,若i≥aii\geq a_ii≥ai且sum≥i−aisum\geq i-a_isum≥i原创 2020-11-22 14:51:26 · 260 阅读 · 0 评论 -
Codeforces Round 1396 简要题解
A. Multiples of Length略B. Stoned Game略C. Monster Invaders问题可以转化为从level 111开始,每次花费ddd的时间移动到一个相邻的level,然后对于level iii,我们有两种选择:第一种是花费pi=r1ai+r3p_i=r_1a_i+r_3pi=r1ai+r3时间,需要至少经过level iii一次;第二种是花费qi=min(r1(ai+2),r1+r2)q_i=\min(r_1(a_i+2),r_1+r_2)qi=mi原创 2020-11-22 14:27:42 · 295 阅读 · 0 评论 -
Codeforces gym 102822 简要题解
博主诈尸啦!来更点cf题解。A. A Colorful Grid分类讨论鬼题。先考虑一下最后的网格图的连通性。我们考虑某一个连通块,如果存在某个连通块外的点与连通块内至少两个点相邻,或者至少两个连通块外的点与连通块内某个点相邻,那么连通块都能继续扩大。这样容易发现,最终可能的连通块一定要么是横着切成若干块,要么是竖着切成若干块,当然也可以是整个网格图完全连通。接下来我们的算法是枚举每一类情况,看看是否能构造出解,如果均不行就无解。如果整个网格图完全连通。不妨设n≤mn\leq mn≤m,若n≤2n\原创 2020-11-22 08:09:40 · 761 阅读 · 0 评论 -
Codechef June Challenge 2020 简要题解
这次题目比较简单。The Tom and Jerry Game!略Operations on a Tuple略The Delicious Cake略Convenient Airports注意到答案的下界为2⋅max(N−M−1,⌈d02⌉)2\cdot \max(N-M-1,\lceil \frac{d_0}{2}\rceil)2⋅max(N−M−1,⌈2d0⌉),其中d0d_0d0为度数为000的点个数,下面给出一个能达到这个下界的构造。...原创 2020-06-19 09:14:24 · 539 阅读 · 0 评论 -
Codeforces Round 1292 简要题解
A. NEKO’s Maze Game略B. Aroma’s Search略C. Xenon’s Attack on the Gangs略D. Chaotic V.vp的时候脑子抽了,不知道写了啥,最后也没过。令k=max(ki)k=\max(k_i)k=max(ki),考虑将1!∼k!1!\sim k!1!∼k!分解质因数,这里可以从小到大计算,每次在上次基础上分解最后一个数即可。将一个数xxx表示为每个质因子出现次数的集合(c1,c2,...,cm)(c_1,c_2,...,c_m)原创 2020-06-14 17:40:18 · 492 阅读 · 0 评论 -
Codeforces Round 1299 简要题解
A.Anu Has a Function略B.Aerodynamic略C.Water Balancevp的时候猜了一下结论,答案满足每个位置被操作恰好一次,那么显然就是对(i,∑j=1iaj)(i,\sum_{j=1}^{i}a_j)(i,∑j=1iaj)的下凸壳上相邻两个点间操作即可,建出下凸壳就做完了。vp完后看了一下题解的证明,挺有意思的。最小化aia_iai的字典序等价于最小化pi=∑j=1iajp_i=\sum_{j=1}^{i}a_jpi=∑j=1iaj的字典序。同样把原创 2020-05-26 10:53:46 · 290 阅读 · 0 评论 -
Codeforces Round 1340 简要题解
第一次听说因为有假题unrated了。。。A. Nastya and Strange Generator略B. Nastya and Scoreboard略C. Nastya and Unexpected Guest考虑一个分层图最短路的算法。先给did_idi排序去重。令F[i][j]F[i][j]F[i][j]表示走到did_idi,时间 mod (g+r)=j\...原创 2020-04-29 10:36:17 · 330 阅读 · 0 评论 -
Codeforces Round 1280 简要题解
A. Cut and Paste略B. Beingawesomeism略C. Jeremy Bearimy略D. Miss Punyverse令点iii的权值ci=wi−bic_i=w_i-b_ici=wi−bi,则一个连通块有贡献当且仅当∑ci>0\sum c_i>0∑ci>0。考虑一个显然的DP,设F[i][j][k]F[i][j][k]F[i][j]...原创 2020-04-08 22:22:02 · 470 阅读 · 0 评论 -
Atcoder agc041简要题解
A - Table Tennis Training略B - Voting Judges略C - Domino Quality当N≤3N\leq 3N≤3时特判。经过一些构造,可以在N=4,5,6,7N=4,5,6,7N=4,5,6,7时都构造出每行每列恰有333个的方案,具体构造的方案可以看代码。注意到在NNN的一个每行每列恰有333个的方案右下方放一个N=4N=4N=4的方案,就可以...原创 2020-04-06 23:31:28 · 583 阅读 · 0 评论 -
Codeforces Round 1329 简要题解
爆炸的一场,掉分掉傻了。A. Dreamoon Likes Coloring略B. Dreamoon Likes Sequences略C. Drazil Likes Heap被一个div1C题彻底打爆了。注意到我们对一个权值当前所在的点调用fff后,这个权值就被删去了。但是如果直接删去最大的2h−2g2^h-2^g2h−2g个权值,可能导致最后剩下的不是完全二叉树。换个角度,我们考...原创 2020-04-05 11:47:11 · 533 阅读 · 0 评论 -
Atcoder agc025E
自闭选手又做不出构造题了,关键是没想到把两条路径合并成一条。先猜测结论,答案可以达到∑i=1N−1min(2,ci)\sum_{i=1}^{N-1} \min(2,c_i)∑i=1N−1min(2,ci)的上界,其中cic_ici是经过第iii条边的路径数目。考虑每次缩掉一个度为111的节点uuu的构造。设跟uuu直接相连的边为iii。若ci=0c_i=0ci=0可以直接缩,ci=...原创 2019-12-01 15:36:03 · 465 阅读 · 0 评论 -
Codeforces 521E
考虑图中的一个连通块,对于它的一棵dfs树,显然必须要有返祖边。我们容易用tarjan算法证明,如果不存在某条树边被两条返祖边覆盖的话一定无解。反之我们选出两条在树上覆盖部分有交的返祖边,取出它们对应的树边,形成了两个相交的环,我们取相交部分的首尾为端点,就得到了三条路径。时间复杂度O(n)\mathcal O(n)O(n)。#include <bits/stdc++.h>#d...原创 2019-11-23 22:45:54 · 157 阅读 · 0 评论 -
Atcoder agc025D
连这个场上过了70+人的题都不会,脑子可能没救了。先只考虑一个DDD的情况,我们将距离为D\sqrt DD的点连边,可以证明得到的是一个二分图。具体的,设D=22k⋅p(pmod 4≠0)D=2^{2k}\cdot p(p \mod 4 \neq 0 )D=22k⋅p(pmod4=0),根据简单的数论知识,所有距离为DDD的点对都可以写成(2k⋅u,2k⋅v)(2^k\cdot u,2^...原创 2019-11-13 21:51:50 · 324 阅读 · 0 评论 -
Codeforces 578E
令L=1L=1L=1,R=−1R=-1R=−1,求出sss的前缀和,那么下界显然是smax−smin−1s_{max}-s_{min}-1smax−smin−1。下面的构造可以达到这个界。我们将前缀和的折线分成>0>0>0和<0<0<0的部分,考虑>0>0>0的部分,我们每次从左到右将所有最大值和其右边一个位置取出(一定是LRLRLR),...原创 2019-11-13 21:41:44 · 187 阅读 · 0 评论 -
Atcoder agc027D
我们令m=1m=1m=1,对网格黑白染色后,要求白格的权值比相邻的黑格大,并且模相邻的黑格余111。不考虑ai,j≤1015a_{i,j}\leq 10^{15}ai,j≤1015的限制的话,有一个显然的构造,令黑格取不同的奇质数,白格取相邻黑格的lcm+1lcm+1lcm+1,这样显然互不相同且合法,问题是权值太大了。考虑调整一下这个做法,我们给每条主对角线和反对角线分别对应一个奇质数,每...原创 2019-11-13 21:30:21 · 167 阅读 · 0 评论 -
Codeforces 547D
考虑把行和列作为点,每个点作为一条边,这样问题就变成给定一个二分图,要求给每条边染成红色或蓝色,每个点的邻边中数目差不超过111。这里给一个基于欧拉回路的构造,对于原图的每个连通块,我们给里面的奇点两两配对连一条虚边,然后求一条欧拉回路,将上面的边交错染色,注意需要从奇点开始dfs。讨论一下就知道这样是正确的。时间复杂度O(n)\mathcal O(n)O(n)。#include <b...原创 2019-11-10 18:27:54 · 243 阅读 · 0 评论 -
Atcoder agc029F
这个题被自己智障了,想了挺久。定义一个EEE的非空子集SSS的邻集N(S)N(S)N(S)是所有在SSS中出现的点的集合。观察(cai xiang)得到有解的充要条件是对于任意非空的SSS,∣N(S)∣≥∣S∣+1|N(S)|\geq |S|+1∣N(S)∣≥∣S∣+1。这个必要性显然,充分性后面的构造给出。考虑如果满足上面的条件,根据Hall定理,一定存在一个EEE到VVV的完美匹配。这样...原创 2019-11-04 21:55:14 · 434 阅读 · 0 评论 -
Atcoder Grand Contest 032 题解&游记
第一次打agc,感觉并不习惯赛制,被打爆了。题目都好难啊。家里的网奇差,点一下玩一年。开场看A,不会。看B,不会。自闭了。冷静了10min,大概会了B,写了一发,还写挂了。自闭了。再看A,再冷静了10min,大概会了,写了一发,过了。这时已经过了0.5h。自闭了。跟榜开了D,口胡了个区间dp,写了一发,挂了。冷静一下,感觉是做法假了,然而并不会靠谱做法。自闭了。只能开C,想了...原创 2019-03-24 20:34:53 · 455 阅读 · 0 评论