盖伦蹲草丛
来源:互联网 发布:网络考试平台 编辑:程序博客网 时间:2024/06/07 05:31
题目描述
众所周知,LOL这款伟大的游戏,有个叫盖伦的英雄。他的伟大之处在于他特别喜欢蹲草丛阴人。某日,德玛西亚与诺克萨斯之间又发生了一场战斗,嘉文四世希望盖伦能带领一支K人的德玛西亚军队出战。
战斗发生在召唤师峡谷。整个召唤师峡谷被分割成M行N列的一个矩阵,矩阵中有空地和几片草丛。这几片草丛中有些很大、有些很小。一个1×1的草丛能容纳3个士兵,盖伦坚信蹲草偷袭战术能战胜诺克萨斯军队,所以他希望他的军队能全部蹲进草丛里。当然,为了不影响盖伦的作战,盖伦需要单独霸占连起来的一片草丛(不管草丛有多大)。
输入
第一行M、N、K,表示矩阵的行数、列数和士兵数量。
接下来M行,输入矩阵,'.'代表平地,'*'代表草丛。
接下来M行,输入矩阵,'.'代表平地,'*'代表草丛。
输出
如果德玛西亚军队和盖伦都能躲进草丛里,则输出“Demacia Win!”,否则输出“Demacia Lose!”
样例输入
3 3 6.**....*.
样例输出
Demacia Win!
提示
1<=m、n<=500
1<=k<=50000
这里对于两个1×1的草丛是否连在一起的定义是:对于每个1×1的草从,它与周围(上下左右)的草丛是连在一起的。
/*思路: * 深搜找到最小连通子集,用总数减去最小连通子集的元素数,看是否满足*3>=k,若满足,则赢;否,Lose....*/import java.util.Scanner;public class 蹲草丛 { static char map[][]=new char[501][501]; //存储数组 static int n,m; static int ans=0,min=Integer.MAX_VALUE;//初始化一个最大的数 static int b[][]={{1,0},{-1,0},{0,-1},{0,1}}; static int dfs(int x,int y){ for(int i=0;i<4;i++){ int xx=x+b[i][0]; int yy=y+b[i][1]; if(xx<0 || yy<0 || xx>=m || yy>=n)continue; //越界处理 if(map[xx][yy]=='*'){ //若是草丛,标记为平地 map[xx][yy]='.'; ans++; dfs(xx,yy); } } return ans; } public static void main(String[] args) {// TODO Auto-generated method stub Scanner scan=new Scanner(System.in); m=scan.nextInt(); n=scan.nextInt(); int k=scan.nextInt(); int count=0; for(int i=0;i<m;i++){ String s=scan.next(); for(int j=0;j<n;j++){ map[i][j]=s.charAt(j); if(map[i][j]=='*'){ count++; //统计总的草丛个数 } } } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(map[i][j]=='*'){ ans=1; map[i][j]='.'; // System.out.println(dfs(i,j)); min=Math.min(dfs(i,j),min); //每次都与上一次找到的数目相比较,取最小值 } } } if((count-min)*3>=k) System.out.println("Demacia Win!"); else System.out.println("Demacia Lose!"); }}
阅读全文
0 0
- 盖伦蹲草丛
- Unity3d+moba+草丛视野
- 我叫草丛的原因
- MOBA游戏草丛系统的个人思路
- HTML5视差教程:青蛙,蝴蝶,草丛,池塘
- 俏丽的草丛之实习日志一
- 俏丽的草丛之实习日志二
- 蹲草丛--dfs或者bfs找最小的连着草丛i
- 恶草丛生的阴暗角落---虚拟机制(上)
- 恶草丛生的阴暗角落---虚拟机制(下)
- HTML5----移动鼠标:青蛙,蝴蝶,草丛,池塘滑动-jparallax
- Toolbar,DrawerLayout,PagerSlidingTabStrip 草丛三基友实现常规home页面
- 深入浅出 RPC - 草丛中依然有几条蛇隐藏着
- 人物走过的草丛,自动出现被踩踏的效果
- 坦克世界盒子开镜去草丛与xvm插件兼容(单车效率、胜率估计、开镜去草丛同时有)
- Unity3d 绘制摇曳的草丛 sway in the breeze, add Grass Texture, add Detail Meshes
- 在草丛间跳来跳去的小兔子更是让小草显得更加有活力
- AndroidStudio 导入项目 Building gradle project info 卡住
- Python---注释
- Tarjan模板
- 爬虫
- Linux下发送与接收组播数据(socket编程)
- 盖伦蹲草丛
- LeetCode Weekly Contest 56 解题报告
- 2017118每日练习
- Code forces 887A Div.64解题报告
- #javaGUI#基于swing包的java用户界面设置入门,布局篇
- LeetCode 403. Frog Jump 题解
- C语言学习笔记(九)——IDE
- Vim 使用特殊符号快速删除指定字符,文件加密,粘贴代码缩进解决
- 自己写了一个flume小文件合并脚本,解决hdfs小文件过多问题