首页 > TAG信息列表 > CF449B
题解 CF449B 【Jzzhu and Cities】
这是一道最短路的题,而且貌似有 SPFA 之死嫌疑。 SPFA 已死,Dijkstra 当道! 就这道题来说,先存好原图,再将这些特殊边读入。在读入过程中,做一下处理,将单源最短路取一个\(\min{dis[v],value}\) ,同时记录有多少条特殊边重复,并把这些点存起来,加入堆中。 这些重复的特殊边不起作用应当很CF449B Jzzhu and Cities
5 5 3 1 2 1 2 3 2 1 3 3 3 4 4 1 5 5 3 5 4 5 5 5 2 2 2 3 1 2 2 2 1 3 2 1 2 2 2 3 2 思路 : 剪完图后,记录一个最小边权的个数,如果从1到v的距离有多个,那么就可以考虑删除v 代码 #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #incluCF449B jzzhu and cities 最短路
CF449B jzzhu and cities 最短路 题目:…… 第一次做的想法: 就是不考虑附加边,求一次最短路,结果就是由多少dis[i]<=teshu[i](1到I特殊边的边长),如果一个点不被影响,则其松弛的节点也不被影响,所以就这样就可以了 发现有误:附加边有可能松弛某些点 更改:每次松弛时用min(dis[i],teshu【最短路】CF449B Jzzhu and Cities
【题目描述】 CF449B Jzzhu and Cities 【分析】 题意:n个点,m条带权边的无向图,其中有k条特殊边连接1和i 问最多能删除多少条特殊边,能使每个点到1的最短距离不变 解答:直接在原图上跑最短路,得到dis[x]表示x到1的最短路。 对于每个用特殊边k连接的点i,如果dis[x]<w[k],那么k可以