找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——prototype、__proto__、constructor
Object 1. Object是一个函数(typeof O ...
- leetcode(js)算法之696计数二进制串
给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的. 重复出现的子串要计算它们出现的次数. 示例: 输入: "0011 ...
- linux符号与正则表达式
特殊符号 > 或者1> 标准输出重定向 先把文件的内容清空 再放入新的内容 >> 或 2>> 追加重定向 把内容放入文件的最后一行 1 ...
- selenium +python webdriver运行时报错cannot find Chrome binary
今日在公司电脑运行自动化测试脚本,出现cannot find Chrome binary报错 百思不得其解,排错后发现应该是电脑以前有配置driver文件路径,driver所在文件路径已变更,现pyt ...
- spring coud Feign常用配置
Ribbon配置 在Feign中配置Ribbon非常简单,直接在application.properties中配置即可,如: # 设置连接超时时间 ribbon.ConnectTimeout=500 ...
- Ajax增删改查-----------增
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 社会单位消防安全户籍化管理系统——半自动提交V1.0版本
社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来 ...
- snmp对超过16T的磁盘大小识别不对的解决办法
https://blog.csdn.net/redleaf0000/article/details/38303299
- onclick传对象
用onclick传对象的时候,用jquery无法进行操作 onclick=(this) 接收到参数后只需要转化一下 console.log($(obj).html());
- JS如何监听动画结束
场景描述 在使用JS控制动画时一般需要在动画结束后执行回调去进行DOM的相关操作,所以需要监听动画结束进行回调.JS提供了以下事件用于监听动画的结束,简单总结学习下. CSS3动画监听事件 trans ...