时间限制: 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-盖伦的蹲草计划(广搜)的更多相关文章

  1. Codevs 2801 LOL盖伦的蹲草计划

    题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲草丛阴人(XL:蹲草阴人也算英雄?!CZQ:没办法,个个都是这么玩的).某日,德玛西亚与 ...

  2. 2801 LOL-盖伦的蹲草计划

    2801 LOL-盖伦的蹲草计划 时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold     题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫 ...

  3. codevs 2801 LOL-盖伦的蹲草计划

     时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄.他的伟大之处在于他特别喜欢蹲 ...

  4. 面向对象text 01 盖伦vs瑞文vs提莫

    ''' Text For Class: League of Legends Garen vs Riven vs Teemo ''' import random # 全局随机 import time c ...

  5. codevs 搜索题汇总(黄金级)

    2801 LOL-盖伦的蹲草计划  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold   题目描述 Description 众所周知,LOL这款伟大的游戏,有个叫盖 ...

  6. openjudge-最好的草

    http://noi.openjudge.cn/ch0108/17/ 总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  65536kB 描述 奶牛Bessie计划好好 ...

  7. 巨蟒python全栈开发-第10天 函数进阶

    一.今日主要内容总览(重点) 1.动态传参(重点) *,** *: 形参:聚合 位置参数*=>元组 关键字**=>字典 实参:打散 列表,字符串,元组=>* 字典=>** 形参 ...

  8. javascript 笔记!

    1.通过javascript向文档中输出文本 document是javascript的内置对象,代表浏览器的文档部分 document.write("Hello Javascript&quo ...

  9. python摸爬滚打之day15----初识类

    1.面向对象和面向过程 面向过程: 以事物的流程为核心.  优点: 负责的事物流程化, 编写简单; 缺点: 可拓展性差. 面向对象: 一切以对象为核心. 对象里封装着一切. 优点: 可拓展性强; 缺点 ...

随机推荐

  1. 如何在移动端app中应用字体图标icon fonts

    How to use icon fonts in your mobile apps 在任何APP设计中实现可图形的矢量缩放最完美的方式是使用字体图标. 移动端的设计变的越来越复杂.原因在于多样的屏幕尺 ...

  2. vista风格的cms企业html后台管理系统模板——后台

    链接:http://pan.baidu.com/s/1c1Cv99e 密码:20yz

  3. 9 - Python函数定义-位置参数-返回值

    目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...

  4. windows安装linux虚拟机、修改apt源

    记录一下windows安装虚拟机以及初始配置的一些坑. 安装VMware Workstation 直接百度搜索VMware,选择合适的版本下载: 按照一般软件的安装步骤安装VMware Worksta ...

  5. ios 不支持iframe 解决方案

    在iframe外层在包一层,通过appendChild()把内容增加到容器中,完整代码如下: @section Css { <link href="@ViewHelper.Conten ...

  6. centos7安装lamp

    一.准备工作 1.   下载并安装CentOS7.2,配置好网络环境,确保centos能上网,可以获取到yum源. centos7.2的网络配置: vim /etc/sysconfig/network ...

  7. git版本控制系统常见操作总结

    简介 Git是强大的版本控制系统,主要功能是针对代码.配置文件等文本进行版本控制.备份等,同时个人认为还是分发代码的一个不错的方式. 常见用法 #创建远程git仓库 [root@test88 ~]# ...

  8. 美化的select下拉框

    ie7浏览器以后的下拉框,给他加上边框样式,是没用的.要是想做出样式好看的下拉框需要用js或者jquery来模拟实现. 代码如下: <div class="r"> &l ...

  9. Math类的数学计算功能

    //Math类的数学计算功能 public class MathTest { public static void main(String[] args) { /*----------下面是三角运算- ...

  10. Go语言入门之指针的使用

    指针的使用: package main import "fmt" func zhi(){ a:= var b *int=&a //声明指针并赋值 *b=3 //改变内存地址 ...