摘要: 传送门 解题思路 分别从a、b、c三个点求单源最短路。 然后枚举两条道路相交的节点(i,j),因为是点权,所以答案为 \(dis[0][i][j]+dis[1][i][j]+dis[2][i][j]+e[i][j]\)。 注意用set进行的堆优化,要防止set丢失元素,所以要对pair的第二维(存点 阅读全文
posted @ 2021-09-17 20:27 尹昱钦 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 这题考察的实际上是对Floyd的深入了解。 我们知道,Floyd求最短路是先枚举中间点k,在枚举起点终点i和j,代表的意义实际上是从i点到j点只允许经过前k个点的最短路。 在回到这个题,T秒前只允许经过T秒前重建完的村庄,完全符合Floyd的思想。 所以做法就是T不断往后推进,然后 阅读全文
posted @ 2021-09-17 14:43 尹昱钦 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 水题一个。 数据范围可以Floyd水过去。 但是苏轼告诉我们: 守其初心,始终不变。 屈原告诉我们: 虽九死其犹未悔。 所以我用了O(n+m)的搜索。 其实这叫做双端队列广搜,碰到边权为0放到队列首,边权为1放到队列尾。 但我没学过,就用了dfs+bfs结合体水过去了。 AC代码 阅读全文
posted @ 2021-09-17 08:30 尹昱钦 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 调了一晚上。。紫题果然不是我现在能做的。。 首先考虑如何把多个deep的和转化成可以快速求出来的东西: 我们可以对于每个[l,r],把每个点到根节点的路径上的点权++(初始为0),这样对于每个询问(l,r,z),答案即为z到根节点的路径上的点权和。 操作1 但是对于每个询问都操作一 阅读全文
posted @ 2021-09-17 08:04 尹昱钦 阅读(23) 评论(0) 推荐(0) 编辑