2016CCPC东北地区大学生程序设计竞赛 1005 HDU5926

时间:2023-03-08 20:22:24

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

题意:给我们一个矩阵,问你根据连连看的玩法可以消去其中的元素

解法:连连看怎么玩,就怎么写,别忘记边界

#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
#include<map>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
int t;
int a[100][100];
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
int flag=0;
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(i+1<=n&&a[i+1][j]==a[i][j])
{
flag=1;
break;
}
if(j+1<=n&&a[i][j]==a[i][j+1])
{
// cout<<"A"<<endl;
flag=1;
break;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1; j<=m; j++)
{
if(i!=j)
{
if(a[1][i]==a[1][j]||a[n][i]==a[n][j])
{
// cout<<a[0][i]<<" "<<a[0][j]<<endl;
// cout<<"A"<<endl;
flag=1;
break;
}
if(a[i][1]==a[j][1]||a[i][m]==a[j][m])
{
flag=1;
break;
}
}
}
}
if(flag)
{
printf("Case #%d: Yes\n",i );
}
else
{
printf("Case #%d: No\n",i );
}
}
return 0;
}