找bug hhh
http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4434
没有用队列,疯狂找不到bug,后来发现很简单的判断时==n和m了,本来心花怒放,测试数据也过了。然而,呜呼,许久不见的re;
好的,re,re,重新,重新!!
然而,不死心的在开更大一点,发现是WA。
那什么时候bfs用数组就行了呢。。
唔,下面那个标注里 mark不会冲突,如果到了这个点上,那他往哪里走的可能性都是一样的 不改变就重复了
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
][]={{-,},{,-},{,},{,}};
][];
][],n,m,r,s;
int ans;
struct node
{
int x,y,step;
}v[];
bool pan(int x,int y)
{
||y<||x>=n||y>=m) return false;
return true;
}
void bfs()
{
v[r].x=;
v[r].y=;
v[r].step=;
ma[][]=;
r++;s=;
;
while(s<r)
{
;i<;i++)
{
];
];
)
{
&&y==m-)
{
ans=v[s].step+;
ma[x][y]=;
d=;
break;
}
else if(mp[x][y]=='.')
{
v[r].x=x;
v[r].y=y;
v[r].step=v[s].step+;
r++;
ma[x][y]=; //各种路里mark不会相冲突吗
}
}
}
if(d) break;
s++;
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
;i<n;i++)
scanf("%s",mp[i]);
memset(ma,,sizeof(ma));
r=;
ans=;
bfs();
printf("%d\n",ans);
}
;
}
RE,数组表队列
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>node; //pair!! first
][]={{-,},{,-},{,},{,}};
][];
][],n,m;
void bfs()
{
queue<node>q;
node now={,};
ma[][]=;
while(!q.empty()) q.pop(); //clear
q.push(now);
while(!q.empty())
{
now=q.front();
q.pop();
;i<;i++)
{
]; //pair 这里可以define
];
||!x||!y||x==n+||y==m+||mp[x][y]=='*')//这了的!x
continue;
ma[x][y]=ma[now.first][now.second]+; //太**了,用标记顺便当step,充分利用
if(x==n&&y==m)
{
printf("%d\n",ma[x][y]);
return;
}
q.push({x,y});
}
}
puts("-1"); //把不可能的结果放在这里,注意位置
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
;i<=n;i++)
scanf(); //指针,不从第一个位置开始读
memset(ma,,sizeof(ma));
bfs();
}
;
}
学长写,虽然好像不兼容过不了,但是太厉害了!!
#pragma GCC diagnostic error "-std=c++11"
#include<bits/stdc++.h>
using namespace std;
//typedef pair<int,int>node; //pair!! first
][]={{-,},{,-},{,},{,}};
][];
][],n,m;
struct node{
int x,y;
};
void bfs()
{
queue<node>q;
node now;
now.x=;
now.y=;
ma[][]=;
while(!q.empty()) q.pop(); //clear
q.push(now);
while(!q.empty())
{
now=q.front();
q.pop();
;i<;i++)
{
];
];
||!x||!y||x==n+||y==m+||mp[x][y]=='*')//这了的!x
continue;
ma[x][y]=ma[now.x][now.y]+; //太**了,用标记顺便当step,充分利用
if(x==n&&y==m)
{
printf();
return;
}
node no;
no.x=x;
no.y=y;
q.push(no);
}
}
puts("-1"); //把不可能的结果放在这里,注意位置
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
;i<=n;i++)
scanf(); //指针,不从第一个位置开始读
memset(ma,,sizeof(ma));
bfs();
}
;
}
pair不能用后 改成struct
找bug hhh的更多相关文章
- 海王星给你好看!FineUI v4.0公测版发布暨《你找BUG我送书》活动开始(活动已结束!)
<FineUI v4.0 你找BUG我送书>活动已结束,恭喜如下三位网友获得由 FineUI 作者亲自翻译的图书<jQuery实战 第二版>! 奋斗~ 吉吉﹑ purplebo ...
- 第二次作业:找Bug
引子 我真的想了一个小时,上哪里去找bug.我昨天还留意到一个bug,今天就不见了.灵光不断,我想起来了.我就要找大公司的产品的bug... 第一部分 调研, 评测 体验. <腾讯桌球>是 ...
- 附加题程序找bug
private: void Resize(int sz){ ){ return; } if(maxSize != sz){ T *arr = new T[sz]; if(arr == NULL){ r ...
- 在无法单步调试的情况下找Bug的技巧
比如说你有一个大的模块A,其组成部分有B,C,D这3个小的模块,现在A出了一个BUG,因为某种原因的限制你无法单步调试.怎么较快地定位BUG发生的根源? 这里记录一下刚才我在找BUG的时候采用的思路, ...
- 找BUG
找一找BUG 一段代码,实现一个pop,push,和getmin都是O(1)的方法. 最初源代码 伙伴代码如下,代码的地址可以通过这个访问: Ubuntu Pastebin https://paste ...
- 判断空间上三个点是否共线问题【找bug篇】
判断空间上三个点是否在同一直线上[找bug篇] 作者:Vashon 时间:20150601 发布时间:20150718 一.拿到问题,首先分析并理清思路. 判断三点是否在同一条直线上需满足以下几点 ...
- 找bug的过程
关于昨天程序出差我找bug的过程记录 昨天才程序 https://www.cnblogs.com/pythonywy/p/11006273.html ├── xxxx │ ├── src.py │ └ ...
- 如何正确的找BUG
什么是BUG 漏洞是在硬件.软件.协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统.具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在S ...
- 一起找bug
帮同学找的一个bug,错误代码如下: package dai_test; public class Test1 { public static void main(String[] args) { / ...
随机推荐
- linux命令tar压缩解压
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- struts2 过滤器和拦截器的区别和使用
java web 过滤器和拦截器的区别和使用 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然 ...
- selenium关于断言的使用
基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JAVASCRIPT编写的. Selenium工具有4种:Seleni ...
- java----String解析
String在内存中的分析: public class Demo { public static void main(String[] args){ String a = new String(&qu ...
- RabbitMQ中客户端的Channel类里各方法释义
// The contents of this file are subject to the Mozilla Public License // Version 1.1 (the "Lic ...
- Vue 添加外部的时间插件不触发v-model事件更改数据
使用的jquery日期插件 最终问题是 在选择完成日期后并未激活 oninput事件,所以也没有激活v-model 去改变date 解决思路: 去插件js文件中,在赋值给dom的时候添加模拟输入事件便 ...
- Vue router拦截 如果用户并未登录直接跳转到登录界面(最简单的cookie演示)
router.beforeEach(function(to,from,next){ console.log('路由拦截') console.log(to.name) console.log(from. ...
- 论文阅读笔记三十八:Deformable Convolutional Networks(ECCV2017)
论文源址:https://arxiv.org/abs/1703.06211 开源项目:https://github.com/msracver/Deformable-ConvNets 摘要 卷积神经网络 ...
- 论文阅读笔记十三:The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation(FC-DenseNets)(CVPR2016)
论文链接:https://arxiv.org/pdf/1611.09326.pdf tensorflow代码:https://github.com/HasnainRaz/FC-DenseNet-Ten ...
- 学习REST
REST:Representational State Transfer,资源的表现状态转换.可以理解为对资源的操作. 1. 资源 资源就是业务对象,如图片.文本.歌曲或者客户.交易等.这些是用户 ...