首页 > 其他分享 >P3916 图的遍历

P3916 图的遍历

时间:2024-05-08 17:35:18浏览次数:21  
标签:遍历 goal int dfs P3916 vis include

题面:
链接:https://www.luogu.com.cn/problem/P3916
思路:反向遍历图

啊卡了好久,如果正序来的话还得考虑环和先后次序的问题
代码:

#include<iostream>
#include<vector>
#include<algorithm>
#include<math.h>
#include<sstream>
#include<string>
#include<string.h>
#include<iomanip>
#include<stdlib.h>
#include<map>
#include<queue>
#include<cmath>
#include<limits.h>
#include<climits>
#include<fstream>
#include<stack>
#include<set>
typedef long long ll;
using namespace std;

const int N = 1e5 + 10;
vector<int>tonxt[N];
int maxn[N];
bool vis[N];
bool visbegin[N];
void dfs(int i,int goal)
{
	if (vis[i])return;
	vis[i] = true;
	maxn[i] = goal;
	for (int k = 0; k < tonxt[i].size(); k++)
	{
		dfs(tonxt[i][k], goal);
	}
	return;
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int n, m; cin >> n >> m;
	for (int i = 0; i < m; i++)
	{
		int from, to;
		cin >> from >> to;
		tonxt[to].push_back(from);
	}
	for (int i = n; i >= 1; i--)
		dfs(i,i);
	for (int i = 1; i <= n; i++)cout << maxn[i] << ' ';
	return 0;
}

标签:遍历,goal,int,dfs,P3916,vis,include
From: https://www.cnblogs.com/zzzsacmblog/p/18180326

相关文章

  • NodeJS路径遍历:示例及预防
    让我们来看看什么是路径遍历攻击,以及在Node.js中可以采用哪些方法来阻止这种攻击。构建一个安全而健壮的应用程序需要考虑的因素很多,并非一件容易的事情。要确保覆盖所有潜在的漏洞是一项十分艰巨的任务,这需要大量的经验和指导。在这些漏洞中,有一个和系统目录访问安全相......
  • 关于单向不循环链表的创建、插入、删除、遍历、检索
    关于单向不循环链表的创建、插入、删除、遍历、检索单向不循环链表公式初始化单向不循环链表构建单向不循环链表结构体//创建结构体类型typedefstructone_way_node{//数据域chardata[DATA_LEN];//指针域structone_way_node*next;}ONE_WAY_NOD......
  • 如何根据二叉树遍历结果快速绘制二叉树
    一、已知前序遍历和中序遍历(1)前序遍历(根结点--->左子树--->右子树)ABDGHCEIF(2)中序遍历(左子树--->根结点--->右子树)GDHBAEICF注意:在最后连接二叉树时,注意先完玩左子树,再连右子树二、已知前后序遍历和中序遍历(1)后序遍历(左子树--->右......
  • 已知前中后序遍历的其中两种推断出最后一种序遍历
    已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是?方法1:首先可以确定c为根d为最左子树由中序debac假设b为第2排的子树那么后序的后两位应该是bcyu本题题目后序不符合由中序debac假设e为第2排的字数那么后序的后两位应该是ec符合本题题目后序由后......
  • 目录遍历-基于Pikachu的学习
    目录遍历原理目录浏览漏洞是由于网站存在配置缺陷,存在目录可浏览漏洞,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以更容易得到网站权限,导致网站被黑。Pikachu打开题目就是两个超链接,我随便点了一个发现url发现变化,有一个参数值titl......
  • 105. 106. 从中序与后序遍历序列构造二叉树
    https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/思路和106.从中序与后序遍历序列构造二叉树相同/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoder......
  • 106. 从中序与后序遍历序列构造二叉树(leetcode)
    https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/要点是明白中序和后序如何构造二叉树的,并且需要理清当前递归函数的语义,不要一开始就陷入细节,而是思考整棵树与其左右子树的关系,语义是:即构造当前节点,给当前节点左右子树赋值,明......
  • 图的概念、存储与遍历
    相关概念图(graph)是一个二元组\(G=(V(G),E(G))\)。其中\(V(G)\)是非空集,称为点集(vertexset),对于\(V\)中的每个元素,我们称其为顶点(vertex)或节点(node),简称点;\(E(G)\)为\(V(G)\)结点之间边的集合,称为边集(edgeset)。​ ......
  • 高效遍历:C++中分隔字符串单词的3种方法详解与实例
     概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文提供了清晰......
  • 二叉树前中后序遍历 迭代法 只需一招!
    核心思想以中序遍历为例在迭代法中我们拿到1节点由于有左孩子我们就会推入2节点,2节点又有左孩子,所以我们推入4,然后弹出2节点,由于这是第二次访问2节点,也就意味着左子树已经去过了,所以推入5节点。那么我们模拟一下栈的变化假设左边为栈顶。1->21->4......