【苏州国庆营模拟】Day2 A.divide
题目链接 题意: 对一个$n$行$m$列的网格黑白染色,满足: 1.黑色的格子两两四联通,白色格子两两四联通,且黑色的格子经过旋转和平移可以和白色的格子重合 2.$w(wx,wy)$这个格子是白色的,$b(bx,by)$这个格子是黑色的。 要求找到任意一个解,或者判断无解。多组数据。 $1\le T\le 10^3, \;1\le n,m\le 50, \;1\le wx,bx\le n, \; 1\le wy,by\le m ,\; (wx,wy)\neq(bx,by)$ 分析: 首先考虑什么时候无解。 ①网格数为奇数,无法均分 ②仅有单行/单列且指定黑白格在同侧,也无法均分 接下来分类讨论: ①若$2|m$(可通过整张图旋转$90^{\circ}$得到,下同),且两个指定点分居中线两侧,则直接对切。 ②若指定点居于中线同侧,且在不同行,可如上图染色。 ③若指定点居于中线异侧,且在相同行,离中线近的指定点不在最后一行,可如上图染色。 实现: #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<queue> #define IL inline #define