今天,你惹对象生气了吗

题号:NC21499
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

去年参加过校赛都知道,ly大人生气了,mxh就要采花哄对象去了,可怜的花田又要遭殃了。

有个神奇的地方有一片地,上下左右四个方向连起来的花形成了一片花地。

这一天,mxh又要采花哄对象啦,他找到了这片地,为了不踩到花,mxh很纠结怎么摘,最后他决定,利用自己神奇的闪现能力,闪现站在草上,摘所有上下左右可以摘到的花,原来有花或者种了花但是花被mxh摘了的,都没法闪现。

问:在mxh这么采摘之后,有多少块花地?

输入描述:

多组数据(不超过10组),读到文件结尾。
输入n,m(保证n,m不超过200),接下来n行,每行m个字符。
'.'表示草地 '#'表示花

输出描述:

一个整数表示花地的个数,行末输出换行

示例1

输入

复制

7 7​
.......​
.##....​
.##....
​....##.​
..####.
...###.
.......​

输出

复制

1

说明

经mxh采摘后,花地变为如下所示................................#................所以还有一块花地
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
const int mod=1e9+7;
typedef long long  ll;//void dfs(int a,int b){
//    if(b==k) {
//        ans++;
//        return;
//    }
//    for(int i=a+1;i<=m*n;i++){
//        int x=(i-1)/m+1;
//        int y=(i-1)%m+1;
//        if(s[x-1][y]==0&&s[x][y-1]==0){
//            s[x][y]=1;
//            dfs(i,b+1);
//            s[x][y]=0;
//        }
//    }
//}
//bool is(long long  x){
//    if(x<=2) return true;
//    for(long long  i=2;i*i<x;i++){
//        if(x%i==0) return false;
//    }
//    return true;
//}//ll f(int x){
//    if(x<2) return x;
//    return (f(x/2)+f(x%2));
//}
//bool is(int x){
//    int t=h/x;
//    if(h%x!=0) t++;
//    if(c-p*t<0){
//        return false;
//    }
//    return true;
//}
//int sum;
//ll ff(ll n){
//    if(n==1) return 1;
//
//    return n*ff(n-1);
//}
//ll f(int n){
//
//    while(n){
//        sum+=n%10;
//        n/=10;
//    }
//    if(n>=10){
//        f(sum);
//    }
//    return sum;
//}//const int MAXN = 305;
//const int INF = 0x3f3f3f3f;
//
//int love[MAXN][MAXN];   // 记录每个妹子和每个男生的好感度
//int ex_girl[MAXN];      // 每个妹子的期望值
//int ex_boy[MAXN];       // 每个男生的期望值
//bool vis_girl[MAXN];    // 记录每一轮匹配匹配过的女生
//bool vis_boy[MAXN];     // 记录每一轮匹配匹配过的男生
//int match[MAXN];        // 记录每个男生匹配到的妹子 如果没有则为-1
//int slack[MAXN];        // 记录每个汉子如果能被妹子倾心最少还需要多少期望值
//
//int N;
//
//
//bool dfs(int girl)
//{
//    vis_girl[girl] = true;
//
//    for (int boy = 0; boy < N; ++boy) {
//
//        if (vis_boy[boy]) continue; // 每一轮匹配 每个男生只尝试一次
//
//        int gap = ex_girl[girl] + ex_boy[boy] - love[girl][boy];
//
//        if (gap == 0) {  // 如果符合要求
//            vis_boy[boy] = true;
//            if (match[boy] == -1 || dfs( match[boy] )) {    // 找到一个没有匹配的男生 或者该男生的妹子可以找到其他人
//                match[boy] = girl;
//                return true;
//            }
//        } else {
//            slack[boy] = min(slack[boy], gap);  // slack 可以理解为该男生要得到女生的倾心 还需多少期望值 取最小值 备胎的样子【捂脸
//        }
//    }
//
//    return false;
//}
//
//int KM()
//{
//    memset(match, -1, sizeof match);    // 初始每个男生都没有匹配的女生
//    memset(ex_boy, 0, sizeof ex_boy);   // 初始每个男生的期望值为0
//
//    // 每个女生的初始期望值是与她相连的男生最大的好感度
//    for (int i = 0; i < N; ++i) {
//        ex_girl[i] = love[i][0];
//        for (int j = 1; j < N; ++j) {
//            ex_girl[i] = max(ex_girl[i], love[i][j]);
//        }
//    }
//
//    // 尝试为每一个女生解决归宿问题
//    for (int i = 0; i < N; ++i) {
//
//        fill(slack, slack + N, INF);    // 因为要取最小值 初始化为无穷大
//
//        while (1) {
//            // 为每个女生解决归宿问题的方法是 :如果找不到就降低期望值,直到找到为止
//
//            // 记录每轮匹配中男生女生是否被尝试匹配过
//            memset(vis_girl, false, sizeof vis_girl);
//            memset(vis_boy, false, sizeof vis_boy);
//
//            if (dfs(i)) break;  // 找到归宿 退出
//
//            // 如果不能找到 就降低期望值
//            // 最小可降低的期望值
//            int d = INF;
//            for (int j = 0; j < N; ++j)
//                if (!vis_boy[j]) d = min(d, slack[j]);
//
//            for (int j = 0; j < N; ++j) {
//                // 所有访问过的女生降低期望值
//                if (vis_girl[j]) ex_girl[j] -= d;
//
//                // 所有访问过的男生增加期望值
//                if (vis_boy[j]) ex_boy[j] += d;
//                // 没有访问过的boy 因为girl们的期望值降低,距离得到女生倾心又进了一步!
//                else slack[j] -= d;
//            }
//        }
//    }
//
//    // 匹配完成 求出所有配对的好感度的和
//    int res = 0;
//    for (int i = 0; i < N; ++i)
//        res += love[ match[i] ][i];
//
//    return res;
//}//int check(int mid){
//    int res=1;
//    int p=a[1];
//    for(int i=2;i<=n;i++){
//        if(a[i]-p>=mid){
//            res++;
//            p=a[i];
//        }
//    }
//    return res>=m;
//}
using namespace std;
char a[100][100];
int n,m,x,y;
int b[4][2]={{0,1},{-1,0},{1,0},{0,-1}};
void dfs(int x,int y){a[x][y]='@';for(int i=0;i<4;i++){int xx=x+b[i][0];int yy=y+b[i][1];if(x<0||x>=n||y<0||y>=m){continue;}else {if(a[xx][yy]=='#'){dfs(xx,yy);}}}
}
int main()
{while(scanf("%d %d",&n,&m)==2){memset(a, 0, sizeof(a));for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin>>a[i][j];}}for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(a[i][j]=='#'){if(a[i-1][j]=='.'||a[i+1][j]=='.'||a[i][j-1]=='.'||a[i][j+1]=='.'){a[i][j]='@';}}}}int res=0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(a[i][j]=='#'){res++;dfs(i, j);}}}cout<<res<<endl;}
}

NC21499-今天,你惹对象生气了吗(dfs)相关推荐

  1. 惹女友生气了不用慌用python做一个3D立体花朵送女友

    展示 这是一个动态图哦 导读 兄弟们可以收藏一下哦!惹女朋友生气了可能用得到,肥学找了几朵python写的花给封装好送给大家.不是多炫酷但是有足够的用心哦.别忘了点赞呀我也就不细说了,来吧展示! 源码 ...

  2. 男朋友老惹我生气怎么办

    你可以试着告诉你男朋友你为什么生气,帮助他理解你的感受.也可以告诉他你希望他做些什么来缓解你的情绪.最重要的是,你要和他进行坦率的沟通,让他知道你的需求和期望.同时,你也可以尝试主动化解冲突,让彼此能 ...

  3. OSChina 周日乱弹 ——我对象整天在家打游戏,怎么办?

    2019独角兽企业重金招聘Python工程师标准>>> @小小李探花 : 一个人在奥林匹克森林公园浪. 伴随着音乐么? 手机党少年们想听歌,请使劲儿戳(这里) 小心,公园的各种蚊子, ...

  4. 女朋友生气了该怎么办·《每天懂一点爱情心理学》·一

    今天把这本书看完了,于是就慌忙的想在豆瓣阅读上更新一下,谁知道竟然没搜索到这本书,后来才发现,这是一个丛书书系,咱们中国丛书书系的书号可以一个书号下面有好几本书.于是把自己的阅读添加到豆列里面,以便后 ...

  5. 女朋友生气了怎么办?别傻傻地哄她,学会这5个技巧才是王道

    很多男生都有过这样的经历,和女朋友因为一点小事情而吵架,然后不知道该怎么哄她.有些男生会选择沉默不语,等她自己消气:有些男生会选择道歉求饶,送花送礼物:有些男生会选择反击还嘴,认为她无理取闹. 其实, ...

  6. 日本“妻子”机器人上线1小时被抢空,AI时代人类可还有未来?

    日本"妻子"机器人被哄抢,不要房车不要彩礼 日本研发出一款"美女机器人",将其命名为"妻子",光看她的外形,你能识别出她其实只是一个机器人吗 ...

  7. 学计算机的女生是一种怎样的存在?

    来源 | 公众号:大学声 世界上有三种人,男人,女人,女博士. 大学里有三种学生,男大学生,女大学生,学计算机的女生. <爱情公寓>里面,曾小贤的一句话,曾经成了很火的段子. 作为一个学计 ...

  8. 张俊红21岁的年度总结

    张俊红21岁的年度总结 总第46篇 ▼ 写在前面 今年是开通公众号第一年,也是正式写年度总结的第一年,以后每年的今天都会写一篇文章来总结自己过去的一年里.严格意义上来说去年的今天(2015年腊月二十七 ...

  9. 和氟西汀类似的备注_撒狗粮:可爱又霸气的给男朋友的微信备注

    在微信里,你的男朋友是怎么被你备注的? 是"老公","儿子",还是"死鬼"?  看看各地网友们的精彩备注吧! --------------- ...

  10. 四种依恋类型_“我值得被爱吗?”| 如何在亲密关系中培养安全型依恋

    缺爱的人最后会和什么样的人在一起?文 | 徐非儿(简单心理认证·实习咨询师) 如果我们尝试给"缺爱"下一个笼统的定义,那可能是:在成长过程中缺乏被关爱的经历,例如总是遭到主要养育者 ...

最新文章

  1. 【Web全栈课程5】jsonp简单使用
  2. 十、Docker快速搭建Elastic Stack(下篇)
  3. VTK:图像加权和用法实战
  4. Ubuntu--useradd指令使用
  5. win10下Rabbitmq的安装和配置
  6. 使用Visual Studio Code调试运行在SAP云平台上处于运行状态的nodejs应用
  7. Python+tkinter实现文件拖放功能
  8. FF的插件iMacros简单交流
  9. python算术编写_python实现算术编码
  10. 计算机桌面锁屏设置,如何设置电脑锁屏壁纸详细方法
  11. hivesql uv
  12. 海康内置4G卡的摄像头设备无法注册EasyCVR平台是什么原因?
  13. 外包 (outsourcing) - 劳务派遣 (labor dispatching)
  14. 大数据培训课程之Flume拓扑结构大数据培训课程之Flume拓扑结构
  15. SVN 检查修改或者提交代码时候一直显示please wait的解决办法(汉化版本显示请稍候)
  16. 4.面向对象:封装,多态
  17. 实现QQ第三方登录、网站接入
  18. Vivado18.3-Zynq PS的开发流程(Hello World) 学习笔记
  19. Tomcat网页乱码、控制台乱码
  20. 【大数据】城市公交网络分析与可视化(三):获取公交站点信息并可视化站点重要程度

热门文章

  1. DM6437的中断和事件
  2. android usb调试授权,USB调试模式已打开,但没有USB调试授权窗口
  3. 项目管理的过程中如何做好沟通管理
  4. 按键精灵文字替换,文字查找代码
  5. 会员运营方案纲要和培训(手稿记录)
  6. 计算机编程大赛报道,带你领略编程的魅力———记重庆大学程序设计大赛
  7. maya mentray_新手快速掌握Maya Mental ray
  8. dota 服务器 无响应,dota2卡死出现无响应蓝屏红字解决方法
  9. 通过java实现word转PDF
  10. 从0开始学c语言-01-如何完整运行一个程序