随笔分类 - 最短路
摘要:题目链接 点我呀 翻译 你是小 的管家,小 要从点 到点 ,点与点之间的边(有向边)有黑色(0)和白色(1)两种, 你可以给每个点涂色 (黑色/白色)。 黑色的点,只能沿着黑色的边接着走,白色的点同理,即如果 是黑色的,那么你接下来只能沿着边 \
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 用floyd思想。 求出来这条新加的边影响到的点对即可。 然后尝试更新点对之间的最短路就好。 更新之后把差值从答案里面减掉。 【代码】 cpp include define ll long long using namespace std
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 让你找到(x0,y0)到(x1,y1)的一条最短路 走过的点必须在所给的n个横向路径上 【题解】 因为n条横向路径上的点最多不会超过10的5次方个,所以我们可以把这10的5次方个点全都 和数字1~10^5一一对应。 然后对于这每一个点,分别于相邻的8个点
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 先处理出来任意一棵树。 然后把不是树上的边处理出来 对于每一条非树边的点(最多21 2个点) 在原图上,做dijkstra 这样就能处理出来这些非树边上的点到其他任意点的最短路了。 然后对于询问x,y 先用LCA+预处理,求出树上的最短路。 接
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 设dis[i]表示到达i号传送器的最早时刻. 显然,虽然有那么多的出发时刻的限制,但我们还是越早到越好的. 因为你到得越早,出发的时间肯定不会比到达的时刻晚的差. 所以,就是一个最短路的问题啦. 因为数据范围比较大. 所以得用dijkstra+
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 点可以重复走的k短路。 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 定义dis[i][j]表示到达i这个点。 用掉了j次去除边的机会的最短路。 dis[1][0]= 0; 在写松弛条件的时候。 如果用了去除边的机会。 就把机会+1再更新最短路就好。 用spfa会超时。 写个dijkstra+优先
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 首先。 这张图是无向无权图。 因此任意两点之间的最短路可以通过N^2的bfs轻易算出来。 即得到d[N+10][N+10] 考虑s[0] t[0]的最短路以及s[1] t[1]的最短路 如果d[s0][t0] l0或d[s1][
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 第一问是个最短路。 第二问。 利用第一问floyd算出来的任意两点之间的最短路。 那么枚举每一条边(x,y) 如果w[1][x]+cost[x][y]+w[y][n]==w[1][n] 那么就说明(x y)这条边是某条最短路上的
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 转化一下思路。 我们求出任意两个点之间到达 最少经过的障碍物的个数。 最后求出障碍物个数小于等于T的 枚举答案就好。 (任意两点间最少障碍物可以用一个类似spfa的方法求得 (很巧妙的转换 【代码】 cpp include de
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 floyd算法 算出任意两点之间的最短路,以及最短路的条数。 然后三重循环枚举v,s,t就好 看看s到t的最短路径不经过v 经过的话增加答案贡献 【代码】 cpp include include define
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 感觉很像一道最短路。 然后就试了一发。 结果真的是。。 只要用一个优先队列优化的dijkstra算法求出每个点的最短路上的前一个点是什么就可以了。 相同大小的话.取每个边的前一个边的边权较小的那个。 然后把每个点的前缀边输出就好
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理出起点到任意点的最短路以及最短路条数= dis[0][i],cnt[0][i] 然后 把所有的边反向 处理出在反图上终点到任意点的最短路以及最短路条数= dis[1][i],cnt[1][i] dis数组的初值为 1,表示无
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 三维显然可以缩短为2维。 只要知道a,b瓶中的水量,c瓶中的水量减一下就能得到。 则设dis[a][b]表示a,b瓶中水量为a,b时,水量的移动量。 然后做一下二维的spfa. 最后枚举a,b得到对应答案就好。 【代码】 cpp
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 给一张二维点格图,其中有一些点可以走,一些不可以走,你每次可以走1..k步,问你起点到终点的最短路. 【题解】 不能之前访问过那个点就不访问了。 即k那一层循环直接break; 因为可能出现这种 ax aa aa 然后起点是(3,2)终点是(1,1);然
阅读全文
摘要:Time Limit: 1 secondMemory Limit: 128 MB【问题描述】长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n。游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1 【输入格式】由文件...
阅读全文
摘要:描述在一个长宽均为10,入口出口分别为(0,5)、(10,5)的房间里,有几堵墙,每堵墙上有两个缺口,求入口到出口的最短路经。格式输入格式第一排为n(n#include #include struct point{ double x; double height[5];};int n, t[200]...
阅读全文
摘要:Time Limit: 1 secondMemory Limit: 128 MB【问题描述】 在一个神奇的小镇上有着一个特别的电车网络,它由一些路口和轨道组成,每个路口都连接着若干个轨道,每个轨道都通向一个路口(不排除有的观光轨道转一圈后返回路口的可能)。在每个路口,都有一个开关决定着出去的轨道,...
阅读全文
摘要:Time Limit: 1 secondMemory Limit: 128 MB【问题描述】在电视时代,没有多少人观看戏剧表演。Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片。他们已经打印请帖和所有必要的信息和计划。许多学生被雇来分发这些请柬。每个学生志愿者...
阅读全文