⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku1154.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#define size 21

char BD[size][size];
int visited[26];
int m, n;
int max;
int Dis[4][2] = {1, 0, -1, 0, 0, 1, 0, -1};

int TestOK(int x, int y)
{
	return x >= 0 && x < m && y >= 0 && y < n;
}


void DFS(int x, int y, int depth)
{
	int i;
	int nx, ny;
	if (depth > max)
	{
		max = depth;
	}
	for (i = 0; i < 4; i++)
	{
		nx = x + Dis[i][0];
		ny = y + Dis[i][1];
		if (TestOK(nx, ny) && visited[BD[nx][ny] - 'A'] == 0)
		{
			visited[BD[nx][ny] - 'A'] = 1;
			DFS(nx, ny, depth + 1);
			visited[BD[nx][ny] - 'A'] = 0;
		}
	}
}

int main()
{
	int i;
	while (scanf("%d %d", &m, &n) != -1)
	{
		for (i = 0; i < m; i++)
		{
			scanf("%s", BD[i]);
		}
		max = 1;
		memset(visited, 0, sizeof(visited));
		visited[BD[0][0] - 'A'] = 1;
		DFS(0, 0, 1);
		printf("%d\n", max);
	}	
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -