首页 > TAG信息列表 > Revamping
最短路简单题——[USACO09FEB]Revamping Trails G
题目大意:给定n个点,m条边的无向图,可以让任意k条边的边权变为0,求从1号点到n号点的最短路。 思路:分层图板题,思路如下: 我们把这个图复制成k+1层图,每一层都与原来的无向图相同,但是任两层图之间的边权为0。思考到一个性质,即因为两层图之间建的是单向图,所以最多只会走k条边权为0的边,走到洛谷 P2939 [USACO09FEB]改造路Revamping Trails
洛谷 P2939 [USACO09FEB]改造路Revamping Trails Description 约翰一共有N)个牧场.由M条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场1出发到牧场N去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰打算升级其中K条小径,使之成为高 速公路.在高速公路上的通洛谷 P2939 [USACO09FEB]改造路Revamping Trails 分层图 最短路 dijkstra
题目链接: https://www.luogu.org/problem/P2939 思路来源博客: https://www.luogu.org/blog/xiaohou/solution-p2939 思路: 1:分层图:根据题意,我们可以发现k<=20的取值范围比较小,所以可以直接用分层图(提示我们要注意观察数据范围,来分析用什么思路去解题) 2:把一个点强行拆分为k个,P2939 [USACO09FEB]改造路Revamping Trails
竟然没有看出来是分层图== #include<bits/stdc++.h>using namespace std;int ne,head[4200010],n,m,a,b,c,k,vist[4200010],d[4200010];struct node{int to,nxt,dis;}eg[4200010];void adde(int u,int v,int c){eg[++ne].nxt=head[u];eg[ne].dis=c;eg[ne].to=v;head[u]=ne;}pr[Usaco2009 Feb]Revamping Trails 道路升级
题目描述 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 <= P1_i <= N; 1 <= P2_i<= N). John需要T_i (1 <= T_i <= 1,000,000)时间单位用道路i从P1_i走到P2_i或者从P2_i 走到P1_i 他想更新一P2939 [USACO09FEB]改造路Revamping Trails
题面 这是一道分层图的模板题(大家都这么说),这使得我这个从来没有学过分层图的蒟蒻不知如何是好 网上的讲解我也都看不懂,或者说好像没找到讲解。。 在跟DDOSvoid大佬进行一番不知所云的交流过后,我忽然明白了这个东西 所谓分层图,就像它的名字一样,把图分成一层一层的,上一层可以到达下