FZU 2028 BFS+vector】的更多相关文章

一个普通的bfs 如果不看样例和input的解释... 四个0真是神样例 又被input误导 以为每个点都按顺序有标号 传送门的终点给的是一个点的标号 然后结果是什么呢?无尽的runtime error...持续了半个训练赛的runtime error.. 然后其实传送门的终点给的是坐标 莫忘-1 然后vector莫忘清空 然后当bfs开始扫传送门的时候莫忘 b是不停在变的(至少在我写的程序中是) 所以for循环中v[][]括号中的应该是从队列中取出来的node的坐标 #include<stdi…
题目链接:时空门问题 简单bfs,每个格子移动的方式除了上下左右,还有时空门,开始想着用邻接表保存每个点能通过时空门到达的点就ok了.很快的敲出来,很快的WA了.长久的dbug并没有发现error.然后换成vector存储,AC,再换成邻接表WA......感觉明明一模一样的好吗...讨厌bug![怒] =============================第二天晚上,神奇的大腿发现,我的head数组开成了maxn,然而实际上是maxn*maxn...沃日...最多有maxn*maxn个点啊…
题意:两个人玩很变态的游戏,将一个草坪的某两个点点燃,点燃的草坪可以向上下左右四个方向扩散,问能否将整块草坪上面的草都点燃.如果能,输出最短时间(^_^他们就能玩更变态的游戏了),如果不能,输出-1. 思路:先求整个草坪的联通块数量cnt. 1.如果cnt大于2,一定不能点燃全图,输出-1 2.如果cnt等于2,分别在两个联通块枚举每个点中找最短时间,最后答案就是max(time1, time2) 3.如果cnt等于1,此题的关键点.枚举两个点作为bfs的两个起点,注意是两个起点,bfs求在这个…
晚上团队训练赛的题 和普通bfs不同的是 这是同时操纵人与影子两个单位进行的bfs 由于可能发生人和影子同时接触水晶 所以不可以分开操作 当时使用node记录人和影子的位置 然后进行两重for循环来分别改变位置 结果超内存 分析了一下应该是队列超了内存 毕竟如果每个点都存入的话一个点最多可以衍生出25个node 然后t最大为200s 一定会超 之间还发生了一些并不能理解的bug 被逼到最后重构才拿到了一个超内存 名次也不好 急需一个ac来赶上去 简直要烧起来了 侧面反映心理素质还是差一些 当时未…
第一次团队训练赛的题 自己看完题没看到不能用舌头吃道具..以为是什么贪心混合bfs..果断放弃..悄悄的背锅了 然后其实比较简单 只是利用vis记录的时候要分两种状态记录 有没有道具 每到一个地方 就朝四个方向都尝试一下能不能吃到 如果吃到了就更新ans 需要注意的是刚开始就要尝试四个方向 vis[2][25][25]的第一维记录道具状态 一开始认为图太小 不用vis 然而不用vis就会出现跳不出循环的状况 #include<stdio.h> #include<string.h>…
 Problem 2150 Fire Game Accept: 693    Submit: 2657 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each gri…
DFS 深度优先 BFS 广度优先 DFS或者BFS都是在联通区域内遍历节点的方法 用在二叉树上DFS有preOreder,inOrder,postOrder,BFS就是层次遍历. 在二叉树上的节点,只有两个选择,left 和right,即,对于每一个节点,in 有1个, out 有两个,有向图 在矩阵的节点上,有四个选择,up.down.left和right四种选择,即,即,对于每一个节点,in 有4个, out 有4个,有向图 在surrounded Regions 中可以使用DFS或者BF…
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T. The same repeated number may be chosen from C unlimited number of times. Note: All numbers (including target) will…
题意: 给出一个图的所有边,每次从图中删除一条边,求任意点对的路径总和(求完了就将边给补回去).(有重边) 思路: #include <bits/stdc++.h> using namespace std; , INF=0x7f7f7f7f; int mapp[N][N]; bool vis[N]; //是否存在队列中 int dest[N]; vector<pair<int,int> > vect; int n, m; int num[N]; void spfa(in…
一.130  Surrounded Regions(https://leetcode.com/problems/surrounded-regions/description/) 题目: 解法: 这道题的意思是将所有被X包围的O都变为X(边缘的不算),我们可以维护一个队列,先把四周的O的位置放进队列中,并把这个位置的值变为Y.然后每次从队列中拿出一个位置,把这个位置四周为O的位置的值变为Y,再把这个位置放进队列(为什么要先变值再进队列呢?在下一道题中会说).一直到队列为空时,我们就成功地把所有直接…