SRM 593 Div1 L1:HexagonalBoard,用染色法判断无向图是否为二分图
2013-10-11 16:07
387 查看
题目来源:http://community.topcoder.com/stat?c=problem_statement&pm=12784
最近由于考研,一个多月没有做TopCoder了,第一次参加Div1,结果第一题都没搞出来,看了社论之后学到了用DFS染色法判断无向图是否是二分图的方法。深刻感觉本人太水了,要加油!
代码如下:
最近由于考研,一个多月没有做TopCoder了,第一次参加Div1,结果第一题都没搞出来,看了社论之后学到了用DFS染色法判断无向图是否是二分图的方法。深刻感觉本人太水了,要加油!
代码如下:
#include <algorithm> #include <iostream> #include <sstream> #include <string> #include <vector> #include <stack> #include <deque> #include <queue> #include <set> #include <map> #include <cstdio> #include <cstdlib> #include <cctype> #include <cmath> #include <cstring> using namespace std; /*************** Program Begin **********************/ int dx[] = {0, -1, -1, 0, 1, 1}, dy[] = {-1, 0, 1, 1, 0, -1}; class HexagonalBoard { private: vector <string> board; int color[50][50]; int result, N; public: void DFS(int x, int y, int c) { int nx, ny; if ('X' == board[x][y] && -1 == color[x][y]) { color[x][y] = c; result = max(result, 1); for (int i = 0; i < 6; i++) { nx = x + dx[i]; ny = y + dy[i]; if (nx < 0 || nx > N-1 || ny < 0 || ny > N-1) { continue; } if ('X' == board[nx][ny]) { result = max(result, 2); DFS(nx, ny, !c); if (c == color[nx][ny]) { result = 3; } } } } } int minColors(vector <string> board) { this->board = board; memset(color, -1, sizeof(color)); result = 0; N = board.size(); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { DFS(i, j, 0); } } return result; } }; /************** Program End ************************/
相关文章推荐
- SRM 593 Div1 L1:HexagonalBoard,用染色法判断无向图是否为二分图
- NYOJ1015---二部图(判断是否是二分图:染色法)
- 染色法判断是否是二分图 hdu2444
- 判断可拖动div是否重合 重合多少
- SRM 583 Div II Level Three:GameOnABoard,Dijkstra最短路径算法
- jquery判断一个div的边界是否超出另外一个div的边界
- js判断鼠标位置是否在某个div中
- 一条判断表Dv_Board中字段boardmaster 是否被更新的触发器
- 判断一个div是否在屏幕外
- Easyui 判断某个Div 里的表单项是否验证通过.
- jQuery 的 Div 标签滚动条属性及判断垂直滚动条是否到达底部
- jquery 判断div滚动条是否滚动到底部
- jquery判断div是否隐藏实例
- cf #360 div2C - NP-Hard Problem(二分图判断+输出)
- 判断div是否在可视区内
- HDU 2444 The Accomodation of Students (二分图匹配+匈牙利算法+bfs判断是否为二分图)
- jquery判断一个div的边界是否超出另外一个div的边界
- HDU2444-The Accomodation of Students-判断是否为二分图+ISAP
- 二分图匹配 判断是否为二分图 —— 模板
- Jquery获取鼠标位置和判断鼠标是否在DIV中