您的位置:首页 > Web前端

【Atcoder】CODE FESTIVAL 2017 qual A D - Four Coloring

2017-09-25 08:06 453 查看

【题意】给定h,w,d,要求构造矩阵h*w满足任意两个曼哈顿距离为d的点都不同色,染四色。

【算法】结论+矩阵变换

【题解】

曼哈顿距离是一个立着的正方形,不方便处理。d=|xi-xj|+|yi-yj|

将矩阵旋转45°,转为切比雪夫距离(正方形)。d=max{|xi-xj|,|yi-yj|}

#include<cstdio>
int h,w,d;
char s[]="RGBY";
int main(){
scanf("%d%d%d",&h,&w,&d);
if(d&1){
for(int i=0;i<h;++i){
for(int j=0;j<w;++j)putchar(s[i+j&1]);
putchar(10);
}
}else{
for(int i=0;i<h;++i){
for(int j=0;j<w;++j){
int x=i+j,y=i-j+10000;
putchar(s[(x/d&1)+(y/d&1)*2]);
}
putchar(10);
}
}
return 0;
}
View Code  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: