Mr. Frog’s Game HDU - 5926(连连看+搜索)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Miranda_ymz/article/details/82936662

Mr. Frog’s Game HDU - 5926

分类:搜索

2018TYUT秋季ACM模拟赛(14)2016CCPC东北地区

题意:连连看,问给出的局面中是否可以消去一对。

思路:边界消得情况,里面两个相连消得情况,分类看一下,找到变break输出 

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
int map[33][33];
int a[4][33];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
bool f(int s[],int n)
{
    for(int i=0;i<n-1;i++)
        if(s[i]==s[i+1]) return 1;
    return 0;
}
int main()
{
    int t,kcase=0;
    int n,m;
    scanf("%d",&t);
    while(t--)
    {
        memset(map,0,sizeof(map));
        memset(a,0,sizeof(a));
        scanf("%d%d",&n,&m);
        for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
        scanf("%d",&map[i][j]);
            if(i==0) a[0][j]=map[i][j];
            if(i==n-1) a[1][j]=map[i][j];
            if(j==0) a[2][i]=map[i][j];
            if(j==m-1) a[3][i]=map[i][j];
        }
        sort(a[0],a[0]+m);
        sort(a[1],a[1]+m);
        sort(a[2],a[2]+n);
        sort(a[3],a[3]+n);
        int flag=0;
        if(f(a[0],m)) flag=1;
        else if(f(a[1],m)) flag=1;
        else if(f(a[2],n)) flag=1;
        else if(f(a[3],n)) flag=1;
        //cout<<flag<<endl;    
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
            {
                int center=map[i][j];
                for(int k=0;k<4;k++)
                {
                    int ux=i+dx[k];
                    int uy=j+dy[k];
                    if(ux<0||uy<0||ux>=n||uy>=m) continue;
                    if(map[ux][uy]==center)
                    {
                        flag=1;
                        break;
                    }
                }
                if(flag) break;
            }
            if(flag) break;
        }
            //cout<<flag<<endl;
        printf("Case #%d: ",++kcase);
       if(flag) printf("Yes\n");
       else printf("No\n");
    }
}

猜你喜欢

转载自blog.csdn.net/Miranda_ymz/article/details/82936662