D. Determine Winning Islands in Race (cf div2,dp、图论最短路)

D. Determine Winning Islands in Race

思路:

bfs找到E到达每个点的最短时间t[i]。

如果E要超过B,那么一定要借助辅助桥,从而获胜。

假设有u->v的辅助桥,E能通过这个桥超过B的条件是:

s>u 且 t[v] < v-s

即 s的取值要为[u+1,v-t[v]-1]

遍历每个辅助桥,找到使E能够获胜的s区间[l,r],用差分数组来保存。最后E获胜输出0,否则输出1即可。

代码:
cpp 复制代码
相关推荐
如竟没有火炬19 分钟前
全排列——交换的思想
开发语言·数据结构·python·算法·leetcode·深度优先
嵌入式小李.man32 分钟前
C++第十三篇:继承
开发语言·c++
寂静山林33 分钟前
UVa 12526 Cellphone Typing
算法
kyle~2 小时前
C++---嵌套类型(Nested Types)封装与泛型的基石
开发语言·c++·算法
sali-tec2 小时前
C# 基于halcon的视觉工作流-章48-短路断路
开发语言·图像处理·人工智能·算法·计算机视觉
墨染点香2 小时前
LeetCode 刷题【128. 最长连续序列】
算法·leetcode·职场和发展
被AI抢饭碗的人2 小时前
算法题(240):最大食物链计数
算法
熬了夜的程序员2 小时前
【LeetCode】82. 删除排序链表中的重复元素 II
数据结构·算法·leetcode·链表·职场和发展·矩阵·深度优先
欧克小奥2 小时前
Floyd判圈算法(Floyd Cycle Detection Algorithm)
算法·floyd
熬了夜的程序员3 小时前
【LeetCode】83. 删除排序链表中的重复元素
算法·leetcode·链表