[CF241E]Flights】的更多相关文章

[CF241E]Flights 题目大意: 给一张\(n(n\le1000)\)个点\(m(m\le5000)\)条边的DAG,确定每条边的边权\(w_i(w_i\in\{1,2\})\),使得所有从\(1\)到\(n\)的路径拥有相同的长度. 思路: 首先用BFS求出所有与\(1\)到\(n\)路径有关的点构成的子图. 这样,\(1\)到子图上每个点的长度都是确定的,即终点相同的路径拥有相同的长度.有\(d_i\)表示点\(1\)到点\(i\)的距离,则对于边\(u\to v\),有\(1\l…
题目 做了一下这道题,突然发现自己忘了差分约束,赶紧复习一下. 设当前有n个变量 a1,a2,...,an ,有若干组限制形如 ai≤aj+k (其中k为常数),则由点j向点i连一条边权为k的边,再从某一确定的变量出发跑最短路(如若a1=0,则设dis1=0,从点1出发跑最短路),得到的disi即为ai的最大值.类似的,若把上面的小于等于改成大于等于,跑最长路,就可以得到每个点的最小值.若跑最短路时出现了负环(最长路正环),则说明无解. 代码: #include<bits/stdc++.h>…
传送门 差分约束永远是Itst最烂的图论知识点没有之一qwq 先用dfs把在\(1\)到\(N\)的路径上的所有点都拿出来,其他的点和边状态任意都不会影响答案. 然后考虑设\(dis_i\)表示从\(1\)到\(i\)的路径长度,那么对于一条边\((s,t)\),有\(1 \leq dis_t - dis_s \leq 2\),差分约束即可. 代码…
题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条边的 \(\texttt{DAG}\) ,给每条边设定边权为 \(1\) 或者 \(2\) ,使得 \(1\to n\) 的每条路径长度都相同. \(n\le 10^3,m\le 5\times 10^3\) 思路 老实说,真的对得起 \(2600\) 的评分(以我现在的角度来看),正解应该算比较难想的吧... 首先肯定需要把没有用的路径删掉,就是不能从 \(1\to n\) 的路径. 首先我们会发现一个比较显然的结论:\(1\to…
[CF241E]Flights(差分约束) 题面 CF 有\(n\)个点\(m\)条边,要求给每条边赋一个\(1\)或\(2\)的边权,判断能否使得每一条\(1\)到\(n\)的路径的权值和都相等,如果可以给出一个方案. 题解 首先有这样一个结论:从\(1\)号点到达任意一个点的所有路径的权值都相同.比较显然,就不证明了. 然后就可以直接差分约束了? #include<iostream> #include<cstdio> #include<cstring> #inclu…
[CF241E]Flights 题面 洛谷 题解 对于原来的图,如果一条边不出现在\(1\)到\(n\)的路径上面,直接\(ban\)掉即可. 那么考虑一条边\(u\rightarrow v\),一定满足\(1\leq dis_v-dis_u\leq 2\),其中\(dis_u,dis_v\)表示\(1\)到\(u,v\)的最短路.直接根据这个性质跑差分约束即可,一条边的答案即为\(dis_v-dis_u\). 代码 #include <iostream> #include <cstdi…
传送门 Luogu 解题思路 首先对于所有不属于任何一条路径上的边,它的权值是任意的. 对于所有在路径上的边 \((u,v)\) 满足 \(1\le dis_v-dis_u\le2\) 差分约束即可. 细节注意事项 用dfs判负环时注意一下时间效率 参考代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio>…
A. Vladik and flights 题目链接 http://codeforces.com/contest/743/problem/A 题面 Vladik is a competitive programmer. This year he is going to win the International Olympiad in Informatics. But it is not as easy as it sounds: the question Vladik face now is…
In the country there are exactly n cities numbered with positive integers from 1 to n. In each city there is an airport is located. Also, there is the only one airline, which makes m flights. Unfortunately, to use them, you need to be a regular custo…
There are n cities connected by m flights. Each fight starts from city u and arrives at v with a price w. Now given all the cities and flights, together with starting city src and the destination dst, your task is to find the cheapest price from src …