hdu 5926 Mr. Frog’s Game(水题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5926

一个连连看游戏,判断第一次是否有可以消除的方块。

6个for循环,分别判断4个最外面的边和里面的相邻的情况就行了

#pragma GCC optimize(2)
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
const int maxn = 500;
const int inf = 0x3f3f3f3f;
typedef long long ll;
int mp[35][35];
int n, m;
int t1 = 1;
int main()
{
	//freopen("C://input.txt", "r", stdin);
	int t;
	scanf("%d", &t);
	while (t--)
	{
		int flag = 0;
		memset(mp, 0, sizeof(mp));
		scanf("%d%d", &n, &m);
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				scanf("%d", &mp[i][j]);
			}
		}
		for (int i = 1; i <= m; i++)        //横
		{
			for (int j = i + 1; j <= m; j++)
			{
				if (mp[1][i] == mp[1][j])
				{
					flag = 1;
				}
			}
		}
		for (int i = 1; i <= m; i++)    //横
		{
			for (int j = i + 1; j <= m; j++)
			{
				if (mp[n][i] == mp[n][j])
				{
					flag = 1;
				}
			}
		}
		for (int i = 1; i <= n; i++)   //竖
		{
			for (int j = i + 1; j <= n; j++)
			{
				if (mp[i][1] == mp[j][1])
				{
					flag = 1;
				}
			}
		}
		for (int i = 1; i <= n; i++)
		{
			for (int j = i + 1; j <= n; j++)
			{
				if (mp[i][m] == mp[j][m])
				{
					flag = 1;
				}
			}
		}
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m - 1; j++)
			{
				if (mp[i][j] == mp[i][j + 1])
				{
					flag = 1;
				}
			}
		}
		for (int i = 1; i <= m; i++)
		{
			for (int j = 1; j <= n - 1; j++)
			{
				if (mp[j][i] == mp[j+1][i])
				{
					flag = 1;
				}
			}
		}
		if (flag)
		{
			printf("Case #%d: Yes\n", t1++);
		}
		else
		{
			printf("Case #%d: No\n", t1++);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/Evildoer_llc/article/details/82928554