题目描述
今年李华经过了多年的复读之后,写好了英语作文,终于考上了大学的计算机专业。但是他想成为游戏开发者,他利用课余时间开发2048游戏。
但是不同于常规2048的是,李华的2048不是4∗4的,而是根据在玩家自己定义的一个数内的大正方形里进行。可以是8∗8,10∗10,100∗100,也可以是4∗4。
李华在最后判断游戏是否还能继续的时候出现了问题。请你帮助她完成这个判断。
在2048中如果在所有方格内都有数字且任意上下左右之间没有相同的数字,则说明游戏不能继续,否则可以继续进行。
输入描述:
第一行输入一个整数t(1≤t≤10^5),表示测试样例组数。 接下来每组测试样例, 第一行输入一个数n(2≤n≤10^3),表示游戏的边界的大小。
接下来输入n行,每行有n个数(2≤x≤2^30),代表正方形内每一个数。
保证所有测试样例的面积(n*n)之和不会超过1000*1000。
输出描述:
输出t行,每行表示一个答案。 如果判断可以进行,则输出YES;如果判断不可以进行,则输出NO。
示例1
输入
1 4 2 4 2 4 2 4 2 2 2 2 2 4 4 2 4 2
输出
YES
以下为本人题解:
这道题也是经典的简单模拟题按要求即可:
#include<bits/stdc++.h>
using namespace std;const int N=1001;
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
int a[n+2][n+2]={0};
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin >> a[i][j];
int x=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(a[i][j]==a[i+1][j]||a[i][j]==a[i][j+1] || a[i][j]==a[i-1][j]||a[i][j]==a[i][j-1])
x=1;
if(x==1)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}