Looksery Cup 2015——AFace Detection
2015-06-11 17:19
288 查看
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 test(s)
input
output
input
output
input
output
input
output
Note
In the first sample the image contains a single face, located in a square with the upper left corner at the second line and the second column:
In the second sample the image also contains exactly one face, its upper left corner is at the second row and the first column.
In the third sample two faces are shown:
In the fourth sample the image has no faces on it.
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 test(s)
input
4 4 xxxx xfax xcex xxxx
output
1
input
4 2 xx cf ae xx
output
1
input
2 3 fac cef
output
2
input
1 4 face
output
0
Note
In the first sample the image contains a single face, located in a square with the upper left corner at the second line and the second column:
In the second sample the image also contains exactly one face, its upper left corner is at the second row and the first column.
In the third sample two faces are shown:
In the fourth sample the image has no faces on it.
#include<cstdio> #include<cstring> #include<algorithm> int main() { int n,m; int c[55][55]; char a[55][55]; while(~scanf("%d%d",&n,&m)){ int count = 0; memset(c,0,sizeof(c)); getchar(); for(int i = 1; i <= n ; i++){ for(int j = 1; j <= m ; j++) scanf("%c",&a[i][j]); getchar(); } for(int i = 1; i <= n ; i++){ for(int j = 1; j <= m ; j++){ if(a[i][j] == 'f') c[i][j] = 1; if(a[i][j] == 'a') c[i][j] = 10; if(a[i][j] == 'c') c[i][j] = 100; if(a[i][j] == 'e') c[i][j] = 1000; } } // for(int i = 1; i <= n ; i++){ // for(int j = 1; j <= m ; j++){ // printf("%c",a[i][j]); // } // puts(""); // } // for(int i = 1; i <= n; i++){ // for(int j = 1; j <= m ;j++) // printf("%d",c[i][j]); // puts(""); // } for(int i = 1; i < n ; i++){ for(int j = 1; j < m ;j++){ if(c[i][j] + c[i+1][j+1] + c[i+1][j] + c[i][j+1] == 1111) count++; } } printf("%d\n",count); } return 0; }
相关文章推荐
- SVG 路径(path)
- Java 8 中的 Streams API 详解
- LeetCode 之 Sort Colors — C 实现
- 将图片转换为NSData
- 快速了解Scala技术栈
- Android开发之如何保证Service不被杀掉(broadcast+system/app)
- 转加解密算法的一些概述总结
- 2015 辽宁省赛C题 dp+单调队列优化
- 构建素数表
- "The method findViewById(int) is undefined for ..."
- 使用svn删除Xcode工程中的文件
- DHCP (Dynamic Host Configuration Protocol)
- android手机使用ksoap2发送soap请求,服务端接收参数为null
- Android 通过图库选择图片提示找不到路径 open failed: EROFS (Read-only file system)
- jQuery选择器全面总结
- Leetcode[104]-Maximum Depth of Binary Tree
- java中的clone()方法的研究---(7)如何编写正确的clone()方法:Date, Timestamp
- 策略模式学习笔记
- 外汇牌价趋势波动图
- swift简介