72.2801 LOL-盖伦的蹲草计划(广搜)
时间限制: 1 s
空间限制:
256000 KB
题目等级
: 黄金 Gold
查看运行结果
题目描述 Description
众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄。他的伟大之处在于他特别喜欢蹲草丛阴人(XL:蹲草阴人也算英雄?!CZQ:没办法,个个都是这么玩的)。某日,德玛西亚与诺克萨斯之间又发生了一场战斗,嘉文四世希望盖伦能带领一支K人的德玛西亚军队出战。
战斗发生在召唤师峡谷。整个召唤师峡谷被分割成M行N列的一个矩阵,矩阵中有空地和几片草丛。这几片草丛中有些很大、有些很小。一个1×1的草丛能容纳3个士兵,盖伦坚信蹲草偷袭战术能战胜诺克萨斯军队,所以他希望他的军队能全部蹲进草丛里。当然,为了不影响盖伦的作战,盖伦需要单独霸占连起来的一片草丛(不管草丛有多大)。
输入描述 Input
Description
第一行M、N、K,表示矩阵的行数、列数和士兵数量。
接下来M行,输入矩阵,'.'代表平地,'*'代表草丛。
输出描述 Output
Description
如果德玛西亚军队和盖伦都能躲进草丛里,则输出“Demacia
Win!”,否则输出“Demacia Lose!”
样例输入 Sample
Input
3 3 6
.**
...
.*.
样例输出 Sample
Output
Demacia Win!
数据范围及提示 Data
Size & Hint
1<=m、n<=1500
1<=k<=1500
P.S:这里对于两个1×1的草丛是否连在一起的定义是:对于每个1×1的草从,它与周围(上下左右)的草丛是连在一起的。
分类标签 Tags 点此展开
基本思路:宽度优先搜索,输入时记录草丛的总数目,宽搜时找出最小的草丛,让盖伦待在那里,其余的点放小兵,把其余的点的数目*3与小兵的数目比较就可以了,
代码:
#include
using namespace std;
#include
#include
int
n,m,jz[5002][5002]={0};
int xx[4]={0,0,1,-1};
int yy[4]={1,-1,0,0};
const int
INF=0x7fffffff;
struct
Poi{
int x,y;
};
Poi poi[5001*5001];
long long
head,tail,k,grasssum,mingrass=INF;
char p[5002];
void input()
{
scanf("%d%d%d",&m,&n,&k);
for(int i=1;i<=m;++i)
{
memset(p,0,sizeof(p));
scanf("%s",p+1);
for(int j=1;j<=n;++j)
{
if(p[j]=='*')
{
jz[i][j]=1;
grasssum++;
}
}
}
}
void BFS()
{
for(int i=1;i<=m;++i)
{
for(int j=1;j<=n;++j)
{
head=0;tail=0;
int sum=0;
if(jz[i][j])
{
poi[++tail].x=i;
poi[tail].y=j;
jz[i][j]=0;
}
while(head
{
++head;
int x1=poi[head].x,y1=poi[head].y;
sum++;
for(int l=0;l<=3;++l)
{
int x2=x1+xx[l],y2=y1+yy[l];
if(x2>=1&&x2<=m&&y2>=1&&y2<=n&&jz[x2][y2]==1)
{
++tail;
poi[tail].x=x2;
poi[tail].y=y2;
jz[x2][y2]=0;
}
}
}
if(sum
mingrass=sum;
//if(sum!=0)
// cout<<sum<<endl;
}
}
}
int main()
{
input();
BFS();
grasssum-=mingrass;
if(grasssum*3>=k)//xing
printf("Demacia Win!\n");
else printf("Demacia Lose!\n");
return 0;
}
72.2801 LOL-盖伦的蹲草计划(广搜)的更多相关文章
- Codevs 2801 LOL盖伦的蹲草计划
题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲草丛阴人(XL:蹲草阴人也算英雄?!CZQ:没办法,个个都是这么玩的).某日,德玛西亚与 ...
- 2801 LOL-盖伦的蹲草计划
2801 LOL-盖伦的蹲草计划 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫 ...
- codevs 2801 LOL-盖伦的蹲草计划
时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲 ...
- 面向对象text 01 盖伦vs瑞文vs提莫
''' Text For Class: League of Legends Garen vs Riven vs Teemo ''' import random # 全局随机 import time c ...
- codevs 搜索题汇总(黄金级)
2801 LOL-盖伦的蹲草计划 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖 ...
- openjudge-最好的草
http://noi.openjudge.cn/ch0108/17/ 总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 奶牛Bessie计划好好 ...
- 巨蟒python全栈开发-第10天 函数进阶
一.今日主要内容总览(重点) 1.动态传参(重点) *,** *: 形参:聚合 位置参数*=>元组 关键字**=>字典 实参:打散 列表,字符串,元组=>* 字典=>** 形参 ...
- javascript 笔记!
1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.write("Hello Javascript&quo ...
- python摸爬滚打之day15----初识类
1.面向对象和面向过程 面向过程: 以事物的流程为核心. 优点: 负责的事物流程化, 编写简单; 缺点: 可拓展性差. 面向对象: 一切以对象为核心. 对象里封装着一切. 优点: 可拓展性强; 缺点 ...
随机推荐
- MSSQL ADO.NET
为什么要学ADO.NET 之前我们所学的只能在查询分析器里查看数据,操作数据,我们让普通用户去学sql,所以我们搭建了一个界面(Web/Winform) 让用户方面的操作数据库中的数据 什么是ADO. ...
- 向量与矩阵的范数及其在matlab中的用法(norm)
一.常数向量范数 \(L_0\) 范数 \(\Vert x \Vert _0\overset{def}=\)向量中非零元素的个数 其在matlab中的用法: sum( x(:) ~= 0 ) \(L_ ...
- CAD启动提示"是否关闭命令行"不管点击什么,都会闪退的解决办法
AutoCAD splash screen starts up and then closes AutoCAD splash screen starts up and then closes (S ...
- docker 升级后,配置 idea 连接 docker
[root@A01-R02-I188-87 ~]# docker version Client: Version: 18.06.1-ce API version: 1.24 Go version: g ...
- C/++——C语言备忘录
1. static变量初始化 在C中,由static修饰的静态变量在没有显式初始化时,将会被初始化为0(对于指针是NULL) 参考:https://en.wikipedia.org/wiki/Unin ...
- spring源码分析---事务篇
上一篇我介绍了spring事务的传播特性和隔离级别,以及事务定义的先关接口和类的关系.我们知晓了用TransactionTemplate(或者直接用底层P的latformTransactionMana ...
- Android学习笔记(四) 定时器Timer
Android考虑到线程安全问题,不允许在线程中执行UI线程. 所以在线程中不允许有UI操作 可以利用Handler机制来接收Timer每隔一秒发出的信息,也可以直接利用handler机制的 1.方法 ...
- 【hdoj_1715】大菲波数(大数+100000000进制)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1715 本题采用大数加法即可解决.采用100000000进制速度更快. C++代码如下: #include& ...
- fedora下中文输入fcitx4.0
fedora12,14下使用fcitx输入法可用,切换ctrl+space
- JavaScript与C#互通的DES加解密算法
原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...