`
runfeel
  • 浏览: 935901 次
文章分类
社区版块
存档分类
最新评论

uva10004 Bicoloring 黑白染色问题,DFS

 
阅读更多

又是水题,最近切题目只能切出水题。。。orz

给出一个联通图,要求在个点上染上两种颜色,相邻的点颜色不能相同,看能不能染色成功。

用dfs搜索一个点的每条边,着色递归,如果已经染过色的且颜色出现矛盾就退出,用flag优化。

由于是联通图,不用考虑孤立的点或图,就比较容易了。

据说可以用并查集做,额,估计要用加权。。。

代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
char maze[31][81];

void dfs(int x, int y) {
	maze[x][y] = '#';
	if (maze[x - 1][y] == ' ')
		dfs(x - 1, y);
	if (maze[x][y - 1] == ' ')
		dfs(x, y - 1);
	if (maze[x + 1][y] == ' ')
		dfs(x + 1, y);
	if (maze[x][y + 1] == ' ')
		dfs(x, y + 1);
}


int main() {
	int n;
//	freopen("in", "r", stdin);
	scanf("%d", &n);
	gets(maze[0]);
	while (n--) {
		int i = 0;
		while (gets(maze[i]) && maze[i][0] != '_') {
			i++;
		}//input
		bool flag = true;
		for (int k = 0; k < i; k++)
			for (int j = 0; flag && j < strlen(maze[k]); j++)
				if (maze[k][j] == '*') {
					maze[k][j] = '#';
					dfs(k, j);
//					printf("%d %d\n", k, j);
					flag = false;
				}
//		printf("%d %d\n", i, flag);
		for (int k = 0; k <= i; k++)
			puts(maze[k]);
	}//while
}



分享到:
评论

相关推荐

    UVA_示例代码

    这些数据结构在UVA题目中广泛运用,例如排序、搜索、图论问题等。 2. **算法**:包括排序算法(快速排序、归并排序、堆排序等)、搜索算法(深度优先搜索DFS、广度优先搜索BFS)、动态规划、贪心策略、回溯法、分治...

    uva272 uva272 uva272

    标题中的"uva272 uva272 uva272"和描述中的"uva272"指的是UVA(University of Virginia)在线判题系统的第272题,这通常与编程竞赛和算法挑战有关。该题目的标签为"算法",意味着我们需要解决一个与计算机算法设计和...

    Uva练习题

    UVA是一个广受欢迎的编程竞赛网站,它为程序员提供了一个展示编程技能和解决问题的平台。这里的“不是很难,试试吧”可能意味着这些题目适合初学者或者中等水平的程序员进行训练,旨在帮助提升算法理解和编程能力。 ...

    uvaoj 习题题目

    通过不断地在UVa上解决习题,开发者不仅可以提升编程技能,还能培养出良好的编程习惯和解决问题的思维模式,这对于个人职业发展和团队协作都有极大的帮助。所以,无论是初学者还是经验丰富的开发者,UVa都是一个不容...

    uva 50个题解

    通过解决UVA上的问题,程序员可以提升对复杂问题的分析能力,掌握如何高效地运用数据结构和算法来解决问题。同时,这些题解也适合作为面试准备的资料,因为许多企业在招聘时都会考察候选人的算法基础。 总的来说,...

    uva 200~299 22道题解 均accept

    UVA在线判题平台是一个著名的编程竞赛和练习平台,它提供了各种难度级别的算法和编程问题,旨在帮助程序员提高算法设计和实现能力。 在提供的文件列表中,我们可以看到以下题目对应的代码: 1. **uva201.cpp** - ...

    uva最全ac代码

    【压缩包子文件的文件名称列表】"uva",虽然没有具体的文件名,但可以推测这些文件可能是按照UVA问题编号命名的,比如"100.cpp"、"259.py"等,代表了对应编号的UVA问题的解决方案。每个文件可能包含了特定问题的完整...

    UVA题目大全

    UVA作为训练平台,为参赛者提供了大量的实际问题,涵盖数据结构、图论、数学、排序、搜索、动态规划等多个领域。 在【压缩包子文件的文件名称列表】中提到的"UVa代码",可能包含的是对UVA题目解题思路的注释代码,...

    uva 部分题目解决代码

    在IT领域,特别是编程竞赛和算法训练中,UVA(University of Virginia)是一个知名的在线判题平台,它为程序员提供了大量的编程题目,旨在提升大家的算法思维和编程能力。"uva 部分题目解决代码"这个压缩包很可能是...

    uva705-Slash-Maze-.rar_Slash_uva705

    【标题】"uva705-Slash-Maze-.rar_Slash_uva705" 指向的是一个在UVa Online Judge (UVa OJ) 上提交并通过的编程问题,具体为问题编号705,名为"Slash Maze"。这个压缩包很可能包含了该问题的解决方案源代码。 ...

    UVa Online Judge部分题目代码

    1. **基础算法**:在UVa的题目中,你会看到基础算法的应用,如排序(冒泡、选择、插入、快速、归并排序等)、搜索(深度优先搜索DFS、广度优先搜索BFS)、动态规划、贪心策略等。这些算法是解决复杂问题的基础。 2....

    UVaOJ-401(Palindromes).zip_401 Palindromes

    标题中的"UVaOJ-401(Palindromes)"表明这是一个关于解决UVa Online Judge(UVa OJ)上编号为401的编程挑战,该挑战的主题是"Palindromes",即回文串。回文串是指一个字符串无论从前读到后还是从后读到前都是相同的,...

    uva.rar_UVA_posAgent_uva 2d_uva_trilearn

    在IT领域,UVA(University of Virginia)是一个著名的在线算法竞赛平台,它为程序员提供了大量问题来提升算法和编程技能。"uva.rar_UVA_posAgent_uva 2d_uva_trilearn"这个标题可能是指一个与UVA平台相关的项目或...

    python 3 中各种UVa(ACM)问题的解决方案_几乎所有_python_代码_下载

    UVA是一个著名的在线平台,提供了大量算法和逻辑思维问题供程序员们练习和比赛。 Python 3 在 ACM 领域的应用广泛,因为它支持多种数据结构如列表、元组、字典,以及高级编程概念如函数式编程和面向对象编程。以下...

    算法入门经典UVa配套题目pdf

    - 图论:图的表示(邻接矩阵、邻接表)、深度优先搜索(DFS)和广度优先搜索(BFS),以及最小生成树(Prim算法、Kruskal算法)和最短路径问题(Dijkstra算法、Floyd-Warshall算法)。 3. **字符串处理** - KMP...

    AIML.zip_UVA_UVA 499

    UVA在线判题系统是程序员提升算法和编程技能的一个平台,用户提交代码以解决特定问题,并获取反馈。 描述中提到的"UVA 499 Solution in C/ C++"表明,这个压缩包包含了使用C或C++语言编写的解答代码。C和C++是两种...

    Uva 1510 - Neon Sign

    在题目“Uva 1510 - Neon Sign”中,我们面对的是一个霓虹灯招牌设计问题。该霓虹灯招牌由一系列位于圆周上的角点组成,并通过发光管连接这些角点。发光管有两种颜色:红色(用数字1表示)和蓝色(用数字0表示)。...

    uva531 LCS算法

    uva531最长公共子序列问题水题,应用简单的dp即可ac有更快速的方法欢迎讨论

    凸包 UVA109 题解

    通过对UVA109题目的解析可以看出,凸包构建是一个典型的计算几何问题,涉及到点排序、扫描构建以及面积计算等多个步骤。掌握好这些算法不仅能帮助解决此类题目,还能应用于更广泛的计算机科学领域中。

    uva_base_hfut_v13.2.tar.gz

    1.Uva_base的编译 在编译球队时,则需要在当前球队文件夹下打开终端输入执行以下命令(以下命令都是在root下执行的): ./configure make clean make 如果运行Uva_base后,出现球员越界或掉线的情况,就重新...

Global site tag (gtag.js) - Google Analytics