![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
constructive algorithms-构造
Phoenix_ZengHao
这个作者很懒,什么都没留下…
展开
-
CodeForces-1439A-Binary Table
题目大意: 对于任意的2*2的正方形,可以选择其中的任意三个(0–>1,1–>0),使得进行若干次操作之后让所有的元素变成0. Easy版本:操作次数不超过3nm Hard版本:操作次数不超过nm 思路: 直接写nm的方法吧(比赛的时候觉得不可能麻烦到去讨论2 * 2的内部单独情况,于是就换思路了,结果今早还是换成了一开始的办法)。从上到下,从左到右(不包括最后两行,和最后一列),一旦当前的a[i][j]==1,那么就选择(i,j),(i,j+1),(i+1,j+1)进行变化。对于最后一列的选原创 2020-11-18 10:59:56 · 196 阅读 · 0 评论 -
CodeForces-1438D-Powerful Ksenia
题目大意: 有一个长度为n的数组a,每次选择三个数字aia_iai ^aja_jaj ^aka_kak,使得最后n个数字都相等。如果存在就输出“YES”,并且输出操作次数m,再输出m行,每行是操作的数的下标;否则就输出“NO” 思路: 先考虑n为奇数的情况。假设n-1个数字两两相等,那么就剩余一个数字未配对,每次将这个数字(假设下标为i)aia_iai 与那n-1个数字中的任意两个进行异或,最后都可以变成aia_iai 。如何将这n-1个数字两两相等?假设那个未配对的数字是ana_nan ,那原创 2020-11-14 16:41:53 · 202 阅读 · 0 评论 -
CodeForces-1438C-Engineer Artem
题目名称: Engineer Artem 题目大意: 有T组数据,每组数据有一个n行m列的矩阵,希望通过一种操作使得矩阵任意相邻的数字不同,这个操作只能让某一个数字加1,可以操作无限次,但是每一个方格只能操作一次。 思路: 一个数字一定可以由奇数变成偶数或者由偶数变成奇数,我们可以让坐标x+y为偶数的格子放偶数,x+y为奇数的格子放奇数。即:如果x+y为偶数的格子上的数为奇数,就让它+1;如果x+y为奇数的格子上的数为偶数,就让它+1,这样就实现的奇偶相间,也保证了相邻不等。 代码: #include&l原创 2020-11-14 11:53:27 · 211 阅读 · 0 评论