CF715B. Complete The Graph 题意: 给一张 n 个点,m 条边的无向图,要求设定一些边的边权 使得所有边权都是正整数,最终 S 到 T 的最短路为 L 1 ≤ n ≤ 1000, 1 ≤ m ≤ 10000 假做法: spfa求s到t最短路且满足可变边最少 然后把不在最短路上的可变边标为inf,最短路上的可变边修改成使最短路长为L 假的原因: 其他的赋值为inf只是保证了经过其他可变边的路径不会更短,没有保证不经过其他可变边只是少经过了几条可变边.导致比最短路长的路径不…
zzq讲的杂题 题目大意 有一张$n​$个点$m​$条边的简单正权无向图,$S​$到$T​$的最短路为$L​$,现在有一些边的边权未知,请输出任意一种满足题意的方案. $n,m\le 500000​$. 题目分析 首先对于每一条边权未定的边,把它的边权设为1,处理出$dist_i​$表示在这种情况下,$T​$到$i​$的最短路距离.之后再从$S​$开始做dij,设$S​$到$u​$的最短路为$len_i​$,那么当前若以$u​$为起点增广一条边权未定的边$(u,v)​$,就将其边权设为$\max…
B. Complete The Graph time limit per test 4 seconds memory limit per test 256 megabytes input standard input output standard output ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m edges between them. Each edge…
D. Complete The Graph time limit per test: 4 seconds memory limit per test: 256 megabytes input: standard input output: standard output ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m edges between them. Each e…
Complete The Graph 题解: 比较特殊的dij的题目. dis[x][y] 代表的是用了x条特殊边, y点的距离是多少. 然后我们通过dij更新dis数组. 然后在跑的时候,把特殊边都先当做1在跑,并且经过特殊边的时候,记得将x更新. 然后如果dis[0][t] < L 则代表不用特殊边也会小于L.所以无论是特殊的边答案是多少,dis[0][t]<L也是固定的. 然后我们不断检查dis[c][t] (for c 1 to N) 是不是 <= L . 找到对应的dis[c]…
原文链接https://www.cnblogs.com/zhouzhendong/p/CF715B.html 题解 接下来说的“边”都指代“边权未知的边”. 将所有边都设为 L+1,如果dis(S,T) < L ,那么必然无解. 将所有边都设为 1 ,如果 dis(S,T) > L ,那么必然无解. 考虑将任意一条边的权值+1,则 dis(S,T) 会 +0 或者 +1 . 如果将所有边按照某一个顺序不断+1,直到所有边的权值都是L+1了,那么在这个过程中,dis(S,T) 是递增的,而且一定…
Description ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m edges between them. Each edge of the graph is weighted, each weight is a positive integer. The next day, ZS the Coder realized that some of the weight…
J - 小panpan学图论 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 小panpan不会图论,所以图论专题他非常刻苦地学习图论. 今天他认真地学习了萌神的ppt,学习了一下Floyd算法,手持两把锟斤拷的他, 口中疾呼烫烫烫,马上找了到OJ上找了道FLoyd的题: n个点,m边的无向连通图,无重边,无自环,每条边的长度都是1,求任意两点之间的…
题意 给定一个\(n\)个点\(m\)条边的无向图,有一些边权暂时为\(0\),你需要分配一个\([1, 10^{18}]\)的数.最终使得\(s\)到\(t\)最短路为\(L\),输出一个可行的分配方案,或告知无解. \(n \leq 10^3\),\(m \leq 10^4\),\(L \leq 10^9\) 题解 首先拿到这个图,我们把\(0\)边换成INF,求\(s\)到\(t\)的最短路\(d\),如果此时\(d<L\),则无解 再把\(0\)边换成\(1\),求最短路\(d\),如果…
图论+构造 首先可以发现如果去除了可以改变权值的边,$s$到$t$的最短路若小于$l$,那么一定不行 若等于则直接将可改边权的边改为inf,输出即可 那么现在原图中的最短路是大于$l$的 因为每一条边是都要加入图中的,而且每条边边权至少为1 那么可以不断向图中加入权值为1的边,并且在加边的过程中不断跑最短路 如果加完当前的边,$s$到$t$的最短路小于l的话,将这条边权值增加 剩下的边边权改为inf即可 简单证明这种做法 首先考虑加入1边后,最短路依然大于$l$,那么继续使最短路减小 再考虑加入…