SDUT-团战可以输、提莫必须死(简单搜索bfs)
题目描述
为了一些你们不知道的原因,我们把LOL的地图抽象为一个n×m的矩阵
提莫积攒了k个蘑菇准备种到地图上去,因为提莫的背篓漏了,所以每一个提莫走过的地方都会被摆下一个蘑菇,两个蘑菇同时种在一个地方的话就会爆炸,所以一旦即将出现这种情况,提莫会直接传送回家,防止自己被炸死
之前的排位赛中因为乱种蘑菇提莫已经被骂了好多次了,所以这次提莫特地查资料对当前地图的各个位置种下蘑菇的价值做了统计,但是因为提莫行动比较笨拙,所以他每次只能移动到上下左右四个方向的格子中(如果该方向有格子的话
每次行走提莫会从四个方向挑选一个权值最大的方向,如果有最大的权值有多个,他会从这多个相同的最大权值之中找出没有走过并且按照上下左右的优先顺序挑选一个合适的方向走。如果最大权值都被走过了,他会心灰意冷的传送回家,此时直接输出"BOOM"
(提莫会顺手在他的起点顺手种一个蘑菇下去
输入
多组输入。
输入第一行包含地图大小n,m,蘑菇数量k。(1 <= n,m <= 100,1 <= k <= n*m)
接下来的n行每行有m个数(并且保证每个数的范围[1,1e5)
接下来两个整数x,y代表提莫的起点
输出
如果走到最后没有地方可以种蘑菇了,但蘑菇还没全部种完,输出"BOOM".
如果蘑菇在半途中种完了,输出提莫所处的坐标"Teemo: x y".
样例输入
3 3 3
1 2 3
4 5 6
7 8 9
2 2
3 3 5
1 2 3
4 5 6
7 8 9
2 2
样例输出
Teemo: 3 3
BOOM
think
上下左右遍历 找出最大值 输出位置就好
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int ma[121][121];
int v[121][121];
int n, m, k;
struct node
{int x, y, ans;
}que[232], p, q;
int xy[4][2] = {{1, 0},{-1, 0}, {0, -1}, {0, 1}};//上下左右四个方向
void bfs(int a, int b)
{int front = 0, rear=0;p.x = a;p.ans = 1;p.y = b;que[rear++] = p;v[p.x][p.y] = 1;while(front<rear){q = que[front++];int max = 0, flag = 0;if(q.ans==k)//蘑菇数量够了{printf("Teemo: %d %d\n", q.x, q.y);return ;}for(int i=0;i<4;i++)//四个方向找出最大值{if(ma[q.x+xy[i][0]][q.y+xy[i][1]]>max)max = ma[q.x+xy[i][0]][q.y+xy[i][1]];}for(int i=0;i<4;i++)//四个方向的值最大{p.x = q.x+xy[i][0];p.y = q.y + xy[i][1];if(p.x>0&&p.x<=n&&p.y>0&&p.y<=m&&v[p.x][p.y]==0&&ma[p.x][p.y]==max){p.ans = q.ans+1;v[p.x][p.y] = 1;que[rear++] = p;flag = 1;}}if(flag==0)//没有最大值了{printf("BOOM\n");return ;}}printf("BOOM\n");
}
int main()
{int a, b;while(~scanf("%d %d %d", &n, &m, &k)){memset(v, 0, sizeof(v));memset(ma, 0, sizeof(ma));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){scanf("%d", &ma[i][j]);}}scanf("%d %d", &a, &b);bfs(a, b);}return 0;
}/***************************************************
User name: jk180140刘洋
Result: Accepted
Take time: 132ms
Take Memory: 264KB
Submit time: 2019-01-17 09:34:46
****************************************************/
SDUT-团战可以输、提莫必须死(简单搜索bfs)相关推荐
- 团战可以输 提莫必须死
Description 在lol的众多英雄当中,有一只无辜的兔子,叫提莫...据最新数据统计,lol国服当中每天会死亡提莫650W只...有一种说法就叫"团战可以输,提莫必须死". ...
- SDUT-3526 团战可以输,提莫必须死(BFS)
团战可以输.提莫必须死 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description 为了 ...
- 简单搜索--BFS--Catch That Cow
简单搜索–BFS–Catch That Cow Description 农夫约翰已被告知一头逃亡牛的下落,并希望立即抓住她.他从某一时刻开始N(0≤)N(≤100,000)在一个数字线上,母牛在一个点 ...
- 团战可以输、提莫必须死 SDUT(BFS)
团战可以输.提莫必须死 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 为了一些你们不知道的原因,我们把LOL的地图抽象 ...
- sdut oj 3526 团战可以输、提莫必须死
团战可以输.提莫必须死 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 为了一些你们不 ...
- 团战可以输、提莫必须死 oj
团战可以输.提莫必须死 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 为了一些你们不知道的原因,我们把LOL的地图抽象为一个 ...
- 数据结构 K - 团战可以输、提莫必须死
K - 团战可以输.提莫必须死 Description 为了一些你们不知道的原因,我们把LOL的地图抽象为一个n×m的矩阵 提莫积攒了k个蘑菇准备种到地图上去,因为提莫的背篓漏了,所以每一个提莫走过的 ...
- [3526] - 团战可以输、提莫必须死
[3526] - 团战可以输.提莫必须死 Problem Description 为了一些你们不知道的原因,我们把LOL的地图抽象为一个n×m的矩阵 提莫积攒了k个蘑菇准备种到地图上去,因为提莫的背篓 ...
- BFS团战可以输、提莫必须死(转载)
团战可以输.提莫必须死 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 为了一些你们不知道的原因,我们把LOL的地图抽象 ...
最新文章
- 【Treap】bzoj1588-HNOI2002营业额统计
- Linux vsftp配置详解
- 洛谷P3953 逛公园
- linux设备驱动之总线、设备、驱动
- 设计模式之: 装饰器模式
- 唯品会 1000+ 台 Hadoop 集群优化经验
- set trans 必须是事务处理的第一个语句_MySQL中特别实用的几种SQL语句送给大家
- python中调用C++函数
- 使用多个tomcat如何修改端口号
- c语言大学程序设计题库,c语言程序设计题库
- VB代码 VB小程序
- PS2游戏Android模拟器,安卓PS2游戏大全|安卓PS2模拟器游戏_小鸡模拟器
- python视频笔记17(控制窗体)
- python怎么设置随机数种子_Pytorch在dataloader类中设置shuffle的随机数种子方式
- BUUCTF-[网鼎杯 2020 青龙组]虚幻2
- 减少不必要的App运营成本,是2022年中小开发者要留心的
- 河南工业大学高级JAVA实验,大学_计算机控制技术实验报告河南工业大学4
- 6. 【三态门】 74LS244 + 【锁存器】 74LS273
- 2023年Java面试题_MySQL
- 马拉松和直播,张朝阳的“沉下去,浮上来”
热门文章
- java注释符与注释内容不要有空格_#java课程#初见java--注释,关键字,标识符
- 刘升平 | 基于知识图谱的人机对话系统
- 企业邮箱怎么申请?公司域名后缀的企业邮箱如何注册呢?
- PO、DO、TO、DTO,BO的区分
- 柏楚电子将在8月8日上市 有望成科创板第26家上市公司
- Ubuntu下利用Opencv进行点阵汉字的字模读取与显示
- 身份认证 Session认证机制 Cookie原理
- CAS:79598-53-1,6-Azidohexanoic Acid可以通过点击化学与另一种化合物连接
- MFC模拟自动取款机
- 「UG/NX」Block UI 微定位Microposition