The Binding of Isaac

Time Limit: 2000MS Memory limit: 65536K

题目描述

Ok, now I will introduce this game to you...

Isaac is trapped in a maze which has many common rooms…

Like this…There are 9 common rooms on the map.

And there is only one super-secret room. We can’t see it on the map. The super-secret room always has many special items in it. Isaac wants to find it but he doesn’t know where it is.Bob 

tells him that the super-secret room is located in an empty place which is adjacent to only one common rooms. 

Two rooms are called adjacent only if they share an edge. But there will be many possible places.

Now Isaac wants you to help him to find how many places may be the super-secret room.

输入

Multiple test cases. The first line contains an integer T (T<=3000), indicating the number of test case.

Each test case begins with a line containing two integers N and M (N<=100, M<=100) indicating the number

of rows and columns. N lines follow, “#” represent a common room. “.” represent an empty place.Common rooms 

maybe not connect. Don’t worry, Isaac can teleport.

输出

One line per case. The number of places which may be the super-secret room.

示例输入

2
5 3
..#
.##
##.
.##
##.
1 1
#

示例输出

8
4

来源

 “浪潮杯”山东省第七届ACM大学生程序设计竞赛

题意

题目虽然看起来很长,但是只要读懂它就非常简单啦~
说的是给你一个地图,’.‘代表空地,‘#’代表门,求在地图中某个非‘#’的点所相邻的上下左右总共有一个‘#’的位置有多少个。
我们可以将整个地图保持在一个字符二维数组中,然后在输入的时候向右向下分别偏移一个单位,因为地图外的一周也要检测啦~
然后枚举所有不是‘#’的点便可以了,反正不会超时,最后输出结果~

AC代码:
#include"stdio.h"
#include"string.h"
#include<iostream>
using namespace std;
char a[105][105];
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        int c,b;
        cin>>c>>b;
        getchar();
        memset(a,0,sizeof(a));
        for(int i=1; i<=c; i++)
            gets(a[i]+1);
        int s=0;
        for(int i=0; i<=c+1; i++)
            for(int j=0; j<=b+1; j++)
                if(a[i][j]!='#')
                {
                    int d=0;
                    if(i>0&&a[i-1][j]=='#')d++;
                    if(a[i+1][j]=='#')d++;
                    if(j>0&&a[i][j-1]=='#')d++;
                    if(a[i][j+1]=='#')d++;
                    if(d==1)s++;
                }
        printf("%d\n",s);
    }
    return 0;
}  

山东省第七届ACM省赛------The Binding of Isaac的更多相关文章

  1. 山东省第七届ACM省赛------Memory Leak

    Memory Leak Time Limit: 2000MS Memory limit: 131072K 题目描述 Memory Leak is a well-known kind of bug in ...

  2. 山东省第七届ACM省赛------Reversed Words

    Reversed Words Time Limit: 2000MS Memory limit: 131072K 题目描述 Some aliens are learning English. They ...

  3. 山东省第七届ACM省赛------Triple Nim

    Triple Nim Time Limit: 2000MS Memory limit: 65536K 题目描述 Alice and Bob are always playing all kinds o ...

  4. 山东省第七届ACM省赛------Fibonacci

    Fibonacci Time Limit: 2000MS Memory limit: 131072K 题目描述 Fibonacci numbers are well-known as follow: ...

  5. 山东省第七届ACM省赛------Julyed

    Julyed Time Limit: 2000MS Memory limit: 65536K 题目描述 Julyed is preparing for her CET-6. She has N wor ...

  6. 山东省第七届ACM省赛

    ID Title Hint A Julyed 无 B Fibonacci 打表 C Proxy 最短路径 D Swiss-system tournament 归并排序 E The Binding of ...

  7. 山东省第十届ACM省赛参赛后的学期总结

    5.11,5.12两天的济南之旅结束了,我也参加了人生中第一次正式的acm比赛,虽然是以友情队的身份,但是我依旧十分兴奋. 其实一直想写博客来增加自己的能力的,但是一直拖到现在,正赶上老师要求写一份总 ...

  8. Rectangles(第七届ACM省赛原题+最长上升子序列)

    题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=1255 描述 Given N (4 <= N <= 100)  rec ...

  9. 山东理工大学第七届ACM校赛-LCM的个数 分类: 比赛 2015-06-26 10:37 18人阅读 评论(0) 收藏

    LCM的个数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 对于我们来说求两个数的LCM(最小公倍数)是很容易的事,现在我遇到了 ...

随机推荐

  1. 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

      先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...

  2. .csv导入mysql时出现乱码

  3. WPF 组合快捷键(Ctrl+C)

    页面程序: <Window x:Class="WpfDataGrid.Window1"        xmlns="http://schemas.microsoft ...

  4. JMeter学习-040-JMeter图形化 HTML 报表概要说明

    JMeter 3.0开始支持动态生成图形化 HTML dashboard报告,当前生成报告有一下两种方式: 1.脚本测试执行结束后,即生成HTML测试报告 2.通过之前生成的测试结果,生成HTML测试 ...

  5. iOS JavaScriptCore与H5交互时出现异常提示

    在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background ...

  6. 英康手机订单系统APP使用说明

    1.登陆手机APP 输入卖家提供的账号和密码登陆APP. 2.商品购买列表 可以在全部商品.促销商品.收藏商品.最近订购.再次购买等几种商品列表下把商品加入购物车: 3.加入商品到购物车 点击商品列表 ...

  7. Android下安装应用不成功解决

    在手机上安装应用程序不成功,可以尝试把手机连接电脑,然后使用adb进行安装,adb安装命令: adb install Android_65632.apk 当出现: success!就表示成功,但当不成 ...

  8. python_编程规范

    缩进 4个"空格"作为一个缩进层次,永远不要使用"制表位" 空格 运算符两边放置一个空格 命名  模块名:模块应该是不含下画线的.简短的.小写的名字.  类名: ...

  9. spark 基本操作

    读取文件的数据 使用的数据:https://codeload.github.com/xsankar/fdps-v3/zip/master 读取单个文件的数据 case class Employee(E ...

  10. WinForm开发-界面控件到实体,实体到界面控件自动绑定

    在WinForm开发中,我们是不是为绑定界面控件的数据而每个控件每个控件的赋值?在保存修改时是不是也是每个控件每个控件的赋值到实体中?字段一多,那简直就是噩梦.有没有像Web中那样方便的方法直接就自动 ...