棋盘占领

Time Limit: 20 Sec  Memory Limit: 256 MB

题目连接

http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=601&pid=1003

Description

百小度最近迷恋上了一款游戏,游戏里有一个n*m的棋盘,每个方格代表一个城池。
一开始的时候我们有g支军队,驻扎并占领了其中某些城池。然后我们可以在这些被占领城池的基础上,吞并占领周围的城池。


而其吞并占领的规则是这样的——一旦一个城池A相邻的上下左右四个城池中至少存在两个被占领,且这两个被占领的城池有公共点,那么城池A也将被占领。
比如我们用1表示初始的占领状态,0表示初始的未占领状态。
那么——


1001


会最终会变成


11

11


而101则保持为101不变

现在告诉你一张地图一开始所有被占领城池的信息,问你最后多少个城池会被我们占领。

Input

第一行为T,表示输入数据组数。

下面T组数据,对于每组数据,
第一行是两个数n,m(1≤n,m≤500),表示国土的大小为n*m。


第二行是一个整数g(1≤g≤1000),表示我们一开始占领的城池数。
然后跟随g行,第i行一对整数x,y(1≤x≤n,1≤y≤m),表示占领的第i个城池的坐标。

Output

对第i组数据,输出

Case #i:

然后输出一行,仅包含一个整数,表示最终有多少个城池被占领。

Sample Input

4 2 2 2 1 1 2 2 3 3 3 1 1 2 3 3 2 2 4 5 1 1 1 1 1 2 1 3 1 4 2 4 2 1 1 2 4

Sample Output

Case #1:
4
Case #2:
9
Case #3:
4
Case #4:
2

HINT

题意

题解:

直接暴力修改就好,这份代码是kuangbin的,我看不了我的代码 = =

我是dfs修改的,和某次cf的题很类似

代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
bool f[550][550];int main()
{//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);int T;int n,m;int iCase = 0;scanf("%d",&T);while(T--){iCase++;scanf("%d%d",&n,&m);memset(f,false,sizeof(f));int x,y;int g;scanf("%d",&g);while(g--){scanf("%d%d",&x,&y);x--;y--;f[x][y] = true;}while(1){bool add = false;for(int i = 0;i < n;i++)for(int j = 0;j < m;j++){if(f[i][j])continue;if(i > 0 && j < m-1 && f[i-1][j] && f[i][j+1]){f[i][j] = true;add = true;continue;}if(i > 0 && j > 0 && f[i-1][j] && f[i][j-1]){f[i][j] = true;add = true;continue;}if(i < n-1 && j > 0 && f[i+1][j] && f[i][j-1]){f[i][j] = true;add = true;continue;}if(i < n-1 && j < m-1 && f[i+1][j] && f[i][j+1]){f[i][j] = true;add = true;continue;}}if(!add)break;}int ans = 0;for(int i = 0;i < n;i++)for(int j = 0;j < m;j++)ans += f[i][j];printf("Case #%d:\n%d\n",iCase,ans);}return 0;
}

转载于:https://www.cnblogs.com/qscqesze/p/4542598.html

2015 百度之星 1003 棋盘占领 dfs相关推荐

  1. 二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换

    题目传送门 1 /* 2 二分搜索:在0-1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c 3 比赛时以为是贪心,榨干智商也 ...

  2. 字符串处理 2015百度之星资格赛 1002 列变位法解密

    题目传送门 1 /* 2 字符串处理:要求解码,然而二维数组开不下,可以直接输出 3 只要在余数的地方判断一下就行了,vector的效率不高 4 另外:感觉麻烦的地方应该纸上写写就清楚了 5 */ 6 ...

  3. 2015百度之星初赛(1)1006 旋转卡壳

    矩形面积 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. 2015百度之星资格赛解题报告

    1001 大搬家  Accepts: 1516  Submissions: 6288  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65 ...

  5. 2017百度之星1003度度熊与邪恶大魔王

    问题描述: 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种攻击方式,第i种攻击方式,需要消耗k ...

  6. 2015百度之星 列变位法解密

    列变位法解密 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Desc ...

  7. 2015 百度之星 1004 KPI STL的妙用

    KPI Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1754 Description 你 ...

  8. bestCoder 2015 百度之星程序设计大赛 资格赛-1003-IP聚合

    IP聚合 Accepts: 1907 Submissions: 5012 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/6553 ...

  9. 2015百度之星复赛(hdu5258 - 5262)

    数长方形 小度熊喜欢玩木棒.一天他在玩木棒的时候,发现一些木棒会形成长方形.小度熊可能是处女座吧,他只会将木棒横竖摆放,这样会形成很多长方形.现在给你一些横竖摆放的木棒,请你帮小度熊数一数形成了多少个 ...

最新文章

  1. 纯js上传文件 很好用
  2. Linux 启动失败 磁盘阵列,组建RAID5重启系统,出现md127的解决办法
  3. IDE 插件新版本发布,开发效率 “biu” 起来了
  4. 使用BeanUitls提高对象拷贝效率
  5. MDB图表统计bootstrap后台模板
  6. [转帖]漫画趣解Linux内核
  7. 漫画算法python版下载_用 Python 下载漫画
  8. 卷积网络如何让测试集准确率上升_调试深度学习网络
  9. H3C交换机配置SSH
  10. 中国智慧建造行业投资前景分析与项目投资建议报告2021-2027年版
  11. 129:vue+openlayers:extent 在EPSG:4326,EPSG:3857,EPSG:900913,CRS:84的范围值
  12. OA系统概要设计文档
  13. SAI绘制宇宙的翅膀
  14. 洛谷——P2342 叠积木
  15. 使用git时报错schannel: next InitializeSecurityContext failed
  16. 批量爬取上交所上市公司报告
  17. 好心情精神心理科医生:如何与青春期的孩子沟通?
  18. [重要]招募计划 - 积微速成报名结果
  19. malloc申请内存空间失败
  20. 计算机相关技术在医院应用,计算机管理相关技术在医院中的应用分析

热门文章

  1. 网站图片做SEO优化的技巧有哪些?
  2. 网站“TDK”中的“D”该如何优化内容?有什么作用?
  3. 网络营销——优秀的网站优化公司都包含哪些助力网络营销的服务?
  4. html jsf ajax blur,JSF和AJAX:隐藏网站的一部分,直到第一个Ajax请求
  5. html中表单涉及的标记有哪几个,HTML学习笔记--表单标记
  6. oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
  7. access字段属性设置下拉列表_可嵌入您系统的.NET 报表控件ActiveReports:带状列表组件...
  8. 开发日记-20190914 关键词 汇编语言王爽版 第三章
  9. DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器...
  10. 矩阵管理——本质是职能分工,例如所有部门都执行财务部门制定的财务制度而不会各自为政...