其他分享
首页 > 其他分享> > ATC ** 练习

ATC ** 练习

作者:互联网

要正视自己的 ** ,所以。。。

AGC056A

题意:

给定一个 \(n\ (n \ge 6)\),构造一个 \(n\times n\) 的矩阵,由 .# 组成,这个矩阵满足:

由于要满足行和列两个方向的信息,所以考虑按对角线对称构造,然后通过不停的奋斗,搞出了这种东西。

##.#......
###.......
.#.##.....
#.#..#....
..#..##...
...##..#..
....#..##.
.....##..#
......#.##
.......###

当然,这是偶数的,奇数的长这样:

##.#.......
###........
.#.##......
#.#..#.....
..#..##....
...##..#...
....#..##..
.....##.#..
......#..##
.......#.##
........###

然后正解是对于 \(n \% 3\) 的结果分类。

对于 \(n = 3k\) 的时候,构造:

###......
...###...
......###
###......
...###...
......###
###......
...###...
......###

然后是 \(n = 3k + 1\) ,考虑在 \(n = 3k\) 的基础上构造:

          3
 ###.......
 ...###....
 ......###.
 ###.......
 ...###....
 ......###.
 ###.......
 ...###....
 ......###.
3..........

然后就是从上面扣下来三个,最后只能多一个连通块,然后就变成下面的样子:

###.......
...###....
......###.
##.......#
...##....#
.......###
###.......
...###....
......###.
..#..##...

但是对于 \(n = 7\) 要特判。

然后是 \(n = 3k - 1\) ,考虑从上面的 \(n = 3k\) 删去最后一行和一列。

       11
 ###.....
 ...###..
1......##
 ###.....
 ...###..
1......##
 ###.....
 ...###..

然后在这些 1 在行列方向相互对出的点上选两个 # 就好了,但是这上面已经有 # 了。

然后有一个非常迷惑的操作:

#.
.#

变成

.#
#.

每行每列的数量是不变的,然后构造:

###.....
...##.#.
.....###
###.....
...##.#.
.....###
###.....
...###..

AGC055A

标签:###.....,连通,ATC,......###.,练习,3k,###.......,...###....
来源: https://www.cnblogs.com/Ax-Dea/p/15836950.html