2119957_tle.c

来自「北大大牛代码 1240道题的原代码 超级权威」· C语言 代码 · 共 75 行

C
75
字号
# include <stdio.h>
# include <string.h>

long l;
char hop[7][7];
char mark[7];
char num[180000][7];

void input()
{
	int i, j;
	int t;

	for(i = 0; i < 5; i++)
		for(j = 0; j < 5; j++)
		{
			scanf("%d",&t);
			hop[i][j] = t+'0';
		}
}

void dfs(int h,int w,int n)
{
	int m;
	long i;

	if(n!=6)
		mark[n] = hop[h][w];
	else
	{
		m = 0;
		for(i = 0; i < l; i++)
			if(strcmp(num[i],mark)==0)
			{
				m = 1;
				break;
			}
		if(!m)
		{
			strcpy(num[l],mark);
			l++;
		}
		return ;
	}
	if(h>0)
		dfs(h-1,w,n+1);
	if(h<4)
		dfs(h+1,w,n+1);
	if(w>0)
		dfs(h,w-1,n+1);
	if(w<4)
		dfs(h,w+1,n+1);

}

void solve()
{
	int i, j;

	l = 0;
	for(i = 0; i < 5; i++)
		for(j = 0; j < 5; j++)
		{
			memset(mark,0,sizeof(mark));
			dfs(i,j,0);
		}
	printf("%ld\n",l);
}

int main()
{
	input();
	solve();
	return 1;
}

⌨️ 快捷键说明

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