newcode wyh的吃鸡(优势队列+BFS)题解
思路:
要用优势队列,因为有的+2,有的+1,所以队列中的步长是不单调的,所以找到一个答案但不一定最小,所以用优势队列把小的放在队首。
要记录状态,所以开了三维,题目和昨天做的那道小明差不多
vis开的int型赋值bool型WA了半天
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#define ll long long
using namespace std;
const int N = 100+5;
char mp[N][N];
int vis[3][N][N],k,x,y,n,to[4][2] = {0,1,0,-1,1,0,-1,0};
struct node{
int x,y;
int step,speed;
bool operator < (const node &a) const{
return step > a.step;
}
};
void BFS(){
priority_queue<node> q;
while(!q.empty()) q.pop();
node a,b;
a.x = x,a.y = y,a.speed = 2,a.step = 0;
vis[a.speed][a.x][a.y] = 1;
q.push(a);
while(!q.empty()){
a = q.top();
q.pop();
if(mp[a.x][a.y] == 'X' && a.step <= k){
printf("YES\n%d\n",a.step);
return;
}
for(int i = 0;i < 4;i++){
b.x = a.x + to[i][0];
b.y = a.y + to[i][1];
b.speed = a.speed;
if(b.x < 1 || b.y < 1 || b.x > n || b.y > n) continue;
if(mp[b.x][b.y] == 'O') continue;
if(vis[b.speed][b.x][b.y]) continue;
vis[b.speed][b.x][b.y] = 1;
b.step = a.step + b.speed;
if(mp[b.x][b.y] == 'C') b.speed = 1;
if(b.step <= k) q.push(b);
}
}
printf("NO\n");
}
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&k);
for(int i = 1;i <= n;i++){
scanf("%s",mp[i] + 1);
for(int j = 1;j <= n;j++){
if(mp[i][j] == 'S') x = i,y = j;
}
}
memset(vis,0,sizeof(vis));
BFS();
}
return 0;
}
newcode wyh的吃鸡(优势队列+BFS)题解的更多相关文章
- 2018年东北农业大学春季校赛-wyh的吃鸡
BFS: 1. 从起点开始BFS,遇到X点则return: 2. vis[px][py][0]代表经过pxpy这点前还没有找到车: vis[px][py][1]代表经过pxpy这点前已经找到车: 3. ...
- 为什么MOBA、“吃鸡”游戏不推荐用tcp协议——实测数据
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云游戏行业资深架构师 余国良 MOBA类和"吃鸡"游戏为什么对网络延迟要求高? 我们知道,不同类型的游戏因为玩法. ...
- tcp没用吗?为什么MOBA、“吃鸡”游戏不推荐用tcp协议
本文由云+社区发表 作者:腾讯云游戏行业资深架构师 余国良 MOBA类和"吃鸡"游戏为什么对网络延迟要求高? 我们知道,不同类型的游戏因为玩法.竞技程度不一样,采用的同步算法不一样 ...
- 为什么MOBA和吃鸡类游戏不推荐用tcp协议 延迟不利于实时游戏
http://news.gamedog.cn/a/20171221/2287418.html 我们知道,不同类型的游戏因为玩法.竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样.例如,M ...
- POJ 2227 The Wedding Juicer (优先级队列+bfs+dfs)
思路描述来自:http://hi.baidu.com/perfectcai_/item/701f2efa460cedcb0dd1c820也可以参考黑书P89的积水. 题意:Farmer John有一个 ...
- 3D位置语音,引领吃鸡游戏体验升级
欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯游戏云 导语:在刚刚结束的首届腾讯用户开放日上,腾讯音视频实验室带着3D位置音效解决方案,向所有用户亮相,为用户提供360度立体空间的 ...
- 【程序员的吃鸡大法】利用OCR文字识别+百度算法搜索,玩转冲顶大会、百万英雄、芝士超人等答题赢奖金游戏
[先上一张效果图]: 一.原理: 其实原理很简单: 1.手机投屏到电脑: 2.截取投屏画面的题目部分,进行识别,得到题目和三个答案: 3.将答案按照一定的算法,进行搜索,得出推荐答案: 4.添加了一些 ...
- GMA Round 1 大吉大利,晚上吃鸡
传送门 大吉大利,晚上吃鸡 新年走亲访友能干点啥呢,咱开黑吃鸡吧. 这里有32个人,每个人都可能想玩或者不想玩,这样子一共有$2^{32}$种可能.而要开黑当然得4人4人组一队(四人模式),所以说如果 ...
- 多校寒训TaoTao要吃鸡dp
题目描述 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量 ...
随机推荐
- Kubernetes容器调度
Kubernetes的调度器是Kubernetes众多组件的一部分,独立于API服务器之外.调度器本身是可插拔的,任何理解调度器和API服务器之间调用关系的工程师都可以编写定制的调度器.本文后面的介绍 ...
- HTML状态消息
HTTP 状态消息 当浏览器从 web 服务器请求服务时,可能会发生错误. 以下列举了有可能会返回的一系列 HTTP 状态消息: 1xx: 信息 消息: 描述: 100 Continue 服务器仅接收 ...
- ABP项目创建
第一种:1.在MyAbp.Migrator下面的appsettings.json里面的sql连接语句 MyAbp.Web.Host 下面的appsettings.json 里面的连接语句2.把MyAb ...
- git更新代码报错,error: The following untracked working tree files would be overwritten by ch
git忽略大小写导致的, git config --add core.ignorecase true
- C#调用VP 包含素材
VS2012 +VP9.0 ***************** 自己运行的时只要修改VP里面素材的路径即可 链接: https://pan.baidu.com/s/1J6Bc5FcBYLZLgqe30 ...
- Qt setMargin()和setSpacing() 的含义
mainLayout=newQVBoxLayout(this); mainLayout->setMargin(30); //表示控件与窗体的左右边距 mainLayout->setSpac ...
- 013-安装VNC服务
(1)#001-安装#光盘iso文件安装mount /dev/cdrom /mntcd /mnt/Packagesrpm -ivh tigervnc*rpm -ivh tigervnc按两次tab键 ...
- 分布式一致性Hash
转载: https://blog.csdn.net/bntX2jSQfEHy7/article/details/79549368 为什么要有Hash一致性算法?就像以前介绍为什么要有Spring一样, ...
- <转>ORACLE EBS中查看某个Request的Output File
由于某些权限的限制,有时候哪怕System Administrator职责也只能看到某个Request信息,但是不能查看它的Output File(在“Requests Summary”窗口中“Vie ...
- Linux root用户下强制静音的问题
解决方法 pulseaudio --start --log-target=syslog suorce /etc/profile