hiho_1139_二分+bfs搜索】的更多相关文章

题目 给定N个点和M条边,从点1出发,到达点T.寻找路径上边的个数小于等于K的路径,求出所有满足条件的路径中最长边长度的最小值. 题目链接:二分     最小化最大值,考虑采用二分搜索.对所有的边长进行排序,二分,对每次选择的边长,判断是否存在一条路径满足路径上所有的边长度均小于等于该边长,且路径中的边的个数小于等于K.     在判断路径是否存在的时候,使用BFS搜索,因为BFS用于寻找最短(边的个数最少)路径. 实现 #include<stdio.h> #include<string…
题意: 给一个n*m的矩阵作为地图,0为通路,1为阻碍.只能向上下左右四个方向走.每一年会在一个通路上长出一个阻碍,求第几年最上面一行与最下面一行会被隔开. 输入: 首行一个整数t,表示共有t组数据. 每组数据首行两个整数n, m,表示矩阵大小. 接下来输入矩阵. 接下来输入一个整数q,表示一共q年. 接下来q行,第i行为两个整数xi, yi,表示在第i年会在xi, yi长出一个阻碍.数据保证只会在通路上生成阻碍. 输出: 如果在第i年被隔开,则输出i.如果始终无法隔开,则输出-1. 吐槽: 我…
Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3159    Accepted Submission(s): 2106 Problem Description You're in space.You want to get home.There are asteroids.You don't want to hit…
Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18847    Accepted Submission(s): 6090Special Judge Problem Description The Princess has been abducted by the BEelzebub…
参考博客:[算法入门]广度/宽度优先搜索(BFS) 适用问题:一个解/最优解 重点:我们怎么运用队列?怎么记录路径? 假设我们要找寻一条从V0到V6的最短路径.(明显看出这条最短路径就是V0->V2->V6) BFS搜索:首先看跟V0直接连接的节点V1.V2.V3,发现没有V6:进而再看跟V1.V2.V3直接连接的节点分别是:{V0, V4}.{V0, V1, V6}.{V0, V1, V5}(这里画删除线的意思是那些顶点在我们刚刚的搜索过程中已经找过了,我们不需要重新回头再看它们了):这时候…
题目链接: India and China Origins Time Limit: 2000/2000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 685    Accepted Submission(s): 230 Problem Description A long time ago there are no himalayas between India and Chi…
Horse Pro bfs搜索,但图中存在负值坐标,两种方法解决. 用数组标记,将原点设为300,300 用map标记 http://oj.jxust.edu.cn/contest/Problem?id=1689&pid=5 #include <iostream> #include <cstdio> #include <queue> using namespace std; typedef long long ll; const int maxn = 10000…
题目分析: 本题是一题比较简单的bfs搜索题,首先由于数据给的比较多不能直接开二维数组存放,而是用了vector的动态的二维数组的形式存放,对于每个出发点,我们bfs向四周搜索,标记搜索过的点,遇到搜过的点就可以停止搜索了,每次搜一个点就和全局的最远距离比较,更远则代替,相同则比较此时编号的大小,如果编号更小则也可以代替 本题代码: 1 #include<iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #incl…
题意,给你一个l,和一个地图,让你从起点走到终点,使得路程刚好等于l. 你可以选择一个系数,把纵向的地图拉伸或收缩,比如你选择系数0.5,也就是说现在上下走一步消耗0.5的距离,如果选择系数3,也就是说上下一步消耗3的距离. 左右不能改变. Hint中提示了答案在0--10之间,其实就透露出了二分的思想. 我们对系数P进行二分,对每一个系数P进行一次bfs,如果可以在小于等于l的步数内找到解,则增加下界,否则减小上界. 由于上下和左右的消耗值不相同,所以我们采用A*算法,设估价值为当前点到目标点…
题目链接如下: https://nanti.jisuanke.com/t/43321 思路: 显然我们要采用二分的方法来寻找答案,给定一个高度如果能确定在这个高度时是否可以安全到达终点,那我们就可以很快二分出最大可行的高度.在判断一个高度是否可行时,搜索从起点开始,在限制的高度下所有可以到达的坐标位置,检验是否经过终点即可. /************************************************ ┆ ┏┓ ┏┓ ┆ ┆┏┛┻━━━┛┻┓ ┆ ┆┃ ┃ ┆ ┆┃ ━ ┃…