洛谷P3916 图的遍历 [图论,搜索]】的更多相关文章

题目传送门 图的遍历 题目描述 给出 N 个点, M条边的有向图,对于每个点 v ,求 A(v) 表示从点 v 出发,能到达的编号最大的点. 输入输出格式 输入格式: 第1 行,2 个整数 N,M . 接下来 M行,每行2个整数 Ui​,Vi​ ,表示边 (Ui​,Vi​) .点用 1,2,⋯,N 编号. 输出格式: N 个整数 A(1),A(2),⋯,A(N) . 输入输出样例 输入样例#1: 复制 4 3 1 2 2 4 4 3 输出样例#1: 复制 4 4 3 4 说明 • 对于60% 的…
P3916 图的遍历 输入输出样例 输入 4 3 1 2 2 4 4 3 输出 4 4 3 4 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer; import java.util.Vector; public class 图的遍历 { static Vector<Vector<Integer>…
题目描述 给出 NN 个点, MM 条边的有向图,对于每个点 vv ,求 A(v)A(v) 表示从点 vv 出发,能到达的编号最大的点. 解题思路 看起来很简单的一道题, 但我依然调了一天,我还是太菜了 审题从一个点出发到达编号最远的点,其实可以反向优化为从最远的点出发可以到达哪些点, 这样每个点只需要遍历一次即可 然而以上是看题解才知道 我好菜啊 代码 #include<iostream> #include<cstring> #include<cstdio> #inc…
题面 思路: 反向建边,dfs艹咋想出来的啊 倒着遍历,如果你现在遍历到的这个点已经被标记了祖先是谁了 那么就continue掉 因为如果被标记了就说明前面已经遍历过了 而我们的顺序倒着来的 前边的一定比现在的大 所以continue掉 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ; int n, m, head[N], cnt, ans[N]; struct…
题目链接:https://www.luogu.org/problemnew/show/P3916 题目大意 略. 分析 以终为始,逆向思维. 代码如下 #include <bits/stdc++.h> using namespace std; #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Rep(i,n) for (int i = 0; i < (n); ++i) #define Fo…
题目来源 做这道题的方法不少. 在这里我只提一种 就是大法师. 可以采用反向建边,从最大的点开始dfs 我们考虑每次从所剩点中最大的一个点出发,我们暂且称它为i,而凡是i这个点所能到达的点,可以到达的点最大都是i. 在遍历的时候按n——>1的顺序 因为是从大到小遍历,故每个点第一次被碰到的i一定是这个点最大可到达的点 代码如下 #include<iostream> #define maxx 500010 using namespace std; int n,m; struct pp {…
P3916 图的遍历 题目描述 给出 N 个点, M 条边的有向图,对于每个点 v ,求 A(v) 表示从点 v 出发,能到达的编号最大的点. 输入输出格式 输入格式: 第1 行,2 个整数 N,MN,M . 接下来 M 行,每行2个整数 U_i,V_i,表示边 (U_i,V_i).点用 1,2,⋯,N 编号. 输出格式: N 个整数 A(1),A(2),⋯,A(N) . 输入输出样例 输入样例#1: 4 3 1 2 2 4 4 3 输出样例#1: 4 4 3 4 说明 • 对于60% 的数据,…
洛谷P1378 油滴扩展 直接暴力搜索更新答案就可以了. 时间复杂度为 \(O(n!)\) . #include<stdio.h> #include<stdlib.h> #include<math.h> #include<algorithm> using namespace std; const int maxn = 10; const double pi = acos(-1.0); int vis[maxn]; double x[maxn], y[maxn…
洛谷 1262 图论 tarjan 并不感觉把这道题目放在图的遍历中很合适,虽然思路比较简单但是代码还是有点多的,, 将可收买的间谍的cost值设为它的价格,不可购买的设为inf,按照控制关系连图,Tarjan缩点,得到的新图中,入度为0的点是必须购买的,如果这些点中存在inf,则不成立 #include <cstdio> #include <algorithm> #include <cstring> const int inf = 0x3f3f3f3f; const…
洛谷传送门,BZOJ传送门 树网的核 Description 设T=(V, E, W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V, E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点. 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和.我们称d(a,b)为a,b两结点间的距离. 一点v到一条路径P的距离为该点与P上的最近的结点的距离:…