• Looksery Cup 2015 A. Face Detection 水题


    A. Face Detection

    Time Limit: 20 Sec

    Memory Limit: 256 MB

    题目连接

    http://codeforces.com/contest/549/problem/A

    Description

    The developers of Looksery have to write an efficient algorithm that detects faces on a picture. Unfortunately, they are currently busy preparing a contest for you, so you will have to do it for them.

    In this problem an image is a rectangular table that consists of lowercase Latin letters. A face on the image is a 2 × 2 square, such that from the four letters of this square you can make word "face".

    You need to write a program that determines the number of faces on the image. The squares that correspond to the faces can overlap.

    Input

    The first line contains two space-separated integers, n and m (1 ≤ n, m ≤ 50) — the height and the width of the image, respectively.

    Next n lines define the image. Each line contains m lowercase Latin letters.

    Output

    In the single line print the number of faces on the image

    Sample Input

    4 4
    xxxx
    xfax
    xcex
    xxxx

    Sample Output

    1

    HINT

    题意

     给你n*m的格子,格子里面有字符串,然后问你有多少个2*2的格子里面,含有face

    题解:

    随便产生一组全排列,然后枚举就好了

    代码:

    //qscqesze
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <ctime>
    #include <iostream>
    #include <algorithm>
    #include <set>
    #include <vector>
    #include <sstream>
    #include <queue>
    #include <typeinfo>
    #include <fstream>
    #include <map>
    #include <stack>
    typedef long long ll;
    using namespace std;
    //freopen("D.in","r",stdin);
    //freopen("D.out","w",stdout);
    #define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
    #define test freopen("test.txt","r",stdin)  
    #define maxn 2000001
    #define mod 10007
    #define eps 1e-9
    int Num;
    char CH[20];
    const int inf=0x3f3f3f3f;
    const ll infll = 0x3f3f3f3f3f3f3f3fLL;
    inline ll read()
    {
        ll x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    inline void P(int x)
    {
        Num=0;if(!x){putchar('0');puts("");return;}
        while(x>0)CH[++Num]=x%10,x/=10;
        while(Num)putchar(CH[Num--]+48);
        puts("");
    }
    //**************************************************************************************
    
    string s[100];
    string s1;
    int c[4]={0,1,2,3};
    vector<int> a[50];
    void unit()
    {
        int i = 0;
        do
        {
            for(int j = 0; j < 4; j++)
                a[i].push_back(c[j]);
            i++;
        } while(next_permutation(c,c + 4));
    }
    int main()
    {
        //test;
        unit;
        int n=read(),m=read();
        for(int i=0;i<n;i++)
            cin>>s[i];
        s1="face";
        int ans=0;
        int c[4]={0,1,2,3};
        for(int i=0;i<n-1;i++)
        {
            for(int j=0;j<m-1;j++)
            {
                c[0]=0,c[1]=1,c[2]=2,c[3]=3;
                do{
                    if(s[i][j]==s1[c[0]]&&s[i+1][j]==s1[c[1]]&&s[i+1][j+1]==s1[c[2]]&&s[i][j+1]==s1[c[3]])
                    {
                        ans++;
                        break;
                    }
                }while(next_permutation(c,c+4));
            }
        }
        cout<<ans<<endl;
    }    

    The first line contains two space-separated integers, n and m (1 ≤ n, m ≤ 50) — the height and the width of the image, respectively.

    Next n lines define the image. Each line contains m lowercase Latin letters.

  • 相关阅读:
    (转)创建Windows服务(Windows Services)N种方式总结
    无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。
    《App架构实践指南》
    Awesome Projects (汇聚全球所有🐮项目,你值得拥有)
    【公告】个人站点及系列文章
    Android+TensorFlow+CNN+MNIST 手写数字识别实现
    TensorFlow基础
    UiAutomator2.0升级填坑记
    那些年,从博客到出书的博主
    Appuim源码剖析(Bootstrap)
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4557597.html
Copyright © 2020-2023  润新知