A. DZY Loves Chessboard (找到一个涂一个)

题目链接:http://codeforces.com/problemset/problem/445/A

 

题目大意:

一个棋盘上有一些格子是坏的,另一些是正常的。对于每一个正常的格子,都要在上面放上棋子。 请找到一组解使没有两个相同颜色的棋子相邻(两个格子相邻为它们存在共同的边) 输入格式: 第一行为两个数n,m。(1<=n,m<=100) 下面n行,每个格子上的字符为'-'或'.','-'表示坏掉的格子,'.'表示正常的格子。 输出格式: 输出n行,每行m个字符。第i个字符串的第j个字符应为“W”,“B”或“ - ”。字符“W”是指在格子上放白色的棋子,“B”意味着放黑色的棋子,“ - ”表示坏掉的格子。 如果有多组答案,输出其中的一个

 

思路:

找到一个符合条件的点,然后对它进行 dfs ,对这个点周围的点进行处理。然后在找下一个点就可以了

 

 

AC代码:

 1 #include <cstdio>
 2 #include <string>
 3 #include <iostream>
 4 #include <algorithm>
 5 #include <string.h>
 6 #include <math.h>
 7 #include <vector>
 8  
 9 using namespace std;
10  
11 char a[105][105];
12 int mx[]={0,0,-1,1};
13 int my[]={1,-1,0,0};
14  
15  
16 void dfs(int x,int y,bool flag)
17 {
18     a[x][y] = flag ? 'B' : 'W';
19     for (int i=0;i<4;i++)
20     {
21         int nx = x + mx[i];
22         int ny = y + my[i];
23         if (a[nx][ny] == '.')
24             dfs(nx,ny,!flag);
25     }
26 }
27  
28  
29  
30 int main()
31 {
32     int n,m;
33     cin >> n >> m;
34     for (int i=1;i<=n;i++)
35     {
36         for (int j=1;j<=m;j++)
37         {
38             cin >> a[i][j];
39         }
40     }
41     for (int i=1;i<=n;i++)
42         for (int j=1;j<=m;j++)
43             if (a[i][j] == '.')
44                 dfs(i,j,true);
45     for (int i=1;i<=n;i++)
46     {
47         for (int j=1;j<=m;j++)
48             cout << a[i][j];
49         cout << endl;
50     }
51     return 0;
52 }

 

以后遇到这种上下左右都走的问题,都可以采取这样的方式处理!

 

全部评论

相关推荐

OPSL:钱确实给的多,但是追责这一点比较迷惑…3个月具体如何计算呢?出勤天数30*3吗?还是21*3呢?万一中间学校有安排怎么办呢?这个得多问一问呀
点赞 评论 收藏
转发
点赞 收藏 评论
分享
正在热议
# 牛客帮帮团来啦!有问必答 #
1151388次浏览 17149人参与
# 通信和硬件还有转码的必要吗 #
11201次浏览 101人参与
# 不去互联网可以去金融科技 #
20346次浏览 255人参与
# 和牛牛一起刷题打卡 #
18954次浏览 1635人参与
# 实习与准备秋招该如何平衡 #
203365次浏览 3625人参与
# 大厂无回复,继续等待还是奔赴小厂 #
4971次浏览 30人参与
# OPPO开奖 #
19198次浏览 267人参与
# 通信硬件薪资爆料 #
265889次浏览 2484人参与
# 国企是理工四大天坑的最好选择吗 #
2220次浏览 34人参与
# 互联网公司评价 #
97679次浏览 1280人参与
# 简历无回复,你会继续海投还是优化再投? #
25035次浏览 354人参与
# 0offer是寒冬太冷还是我太菜 #
454846次浏览 5124人参与
# 国企和大厂硬件兄弟怎么选? #
53898次浏览 1012人参与
# 参加过提前批的机械人,你们还参加秋招么 #
14644次浏览 349人参与
# 硬件人的简历怎么写 #
82285次浏览 852人参与
# 面试被问第一学历差时该怎么回答 #
19395次浏览 213人参与
# 你见过最离谱的招聘要求是什么? #
28077次浏览 248人参与
# 学历对求职的影响 #
161230次浏览 1804人参与
# 你收到了团子的OC了吗 #
538694次浏览 6386人参与
# 你已经投递多少份简历了 #
344196次浏览 4963人参与
# 实习生应该准时下班吗 #
96971次浏览 722人参与
# 听劝,我这个简历该怎么改? #
63519次浏览 622人参与
牛客网
牛客企业服务