uva 10010 Where's Waldorf?

题目:10010 - Where's Waldorf?

思路:水题。。暴力

 

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int row,col,l;
char s[55][55];
char str[110];
int dir[8][2]={-1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1};
bool is_ok(int i,int j,int k,int p)
{
    if(s[i][j]==str[k])
    {
        if(k==l-1)
            return true;
        int ii=i+dir[p][0];
        int jj=j+dir[p][1];
        while(ii>=0&&ii<row&&jj>=0&&jj<col&&s[ii][jj]==str[k+1])
        {
            //cout<<s[ii][jj]<<"+++"<<str[k+1]<<endl;
            if(s[ii][jj]==str[k+1]&&k==l-2)
                return true;
            k++;
            ii+=dir[p][0];
            jj+=dir[p][1];
        }
    }
    return false;
}
int main()
{
    int t;
    scanf("%d",&t);
    for(int cases=1;cases<=t;cases++)
    {
        if(cases==1)
            ;
        else
            printf("\n");
        scanf("%d%d",&row,&col);
        for(int i=0;i<row;i++)
        {
            getchar();
            for(int j=0;j<col;j++)
            {
                scanf("%c",&s[i][j]);
                if(s[i][j]>='A'&&s[i][j]<='Z')
                    s[i][j]+='a'-'A';
            }
        }
        int k;
        scanf("%d",&k);
        for(int c=0;c<k;c++)
        {
            scanf("%s",str);
            l=strlen(str);
            for(int i=0;i<l;i++)
                if(str[i]>='A'&&str[i]<='Z')
                    str[i]+='a'-'A';
            int tag=0;
            for(int i=0;i<row;i++)
            {
                for(int j=0;j<col;j++)
                {
                    //if(s[i][j]==str[0])
                        //cout<<i<<","<<j<<endl;
                    for(int p=0;p<8;p++)
                    {
                        if(is_ok(i,j,0,p))
                        {
                            printf("%d %d\n",i+1,j+1);
                            tag=1;
                            break;
                        }
                    }
                    if(tag)
                        break;
                }
                if(tag)
                    break;
            }
        }
    }
    return 0;
}
View Code

 

posted @ 2013-06-16 16:48  over_flow  阅读(271)  评论(0编辑  收藏  举报