找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) { / ...
随机推荐
- js——类型转换
总述 类型转换:显式.隐式(自动) 隐式转换是由编译器自动进行的,基本主要抽象操作有ToPrimitive, ToNumber, ToString, ToBoo ...
- C语言学习及应用笔记之二:C语言static关键字及其使用
C语言有很多关键字,大多关键字使用起来是很明确的,但有一些关键字却要相对复杂一些.我们这里要说明的static关键字就是如此,它的功能很强大,相应的使用也就更复杂. 一般来说static关键字的常见用 ...
- Confluence 6 SQL Server 输入你的数据库细节
Confluence 的安装向导将会指导你一步一步的在 Confluence 中配置安装 SQL Server 数据库. 使用 JDBC 连接(默认) JDBC 是推荐的连接你的 Confluence ...
- 【VBA】数组定义时,括号内的数值n为最大下标,其长度为n+1
定义数组 dim arr(9) as integer注意这是数组的长度为10,而9指的是最大下标值. 所以在redim和赋值的时候要特别小心,防止错位.
- test pictures
https://cnbj1.fds.api.xiaomi.com/mace/demo/mace_android_demo.apk
- vuex action 与mutations 的区别
面试没说清楚.这个太丢人回来整理下: 事实上在 vuex 里面 actions 只是一个架构性的概念,并不是必须的,说到底只是一个函数,你在里面想干嘛都可以,只要最后触发 mutation 就行.异步 ...
- python并发编程之多线程2------------死锁与递归锁,信号量等
一.死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去.此时称系统处于死锁状态或系统 ...
- ubuntu 调整分辨率
修改 /etc/X11/xorg.conf配置文件即可
- java web----MINA框架使用
前期准备 1.下载 http://mina.apache.org/ 2.将依赖包添加到工程目录下(在工程目录下创建libs(directory目录)) 3.将 slf4j-api-1.7.26.jar ...
- WebStorm中常用的快捷键及使用技巧
------------------------------------- 近期整理了如下个人觉得比较常用的快捷键,也请前辈给予补充.多多指教. --------------------------- ...