题目描述

给出 NN 个点, MM 条边的有向图,对于每个点 vv ,求 A(v)A(v) 表示从点 vv 出发,能到达的编号最大的点。

解题思路

看起来很简单的一道题,

但我依然调了一天,我还是太菜了

审题从一个点出发到达编号最远的点,其实可以反向优化为从最远的点出发可以到达哪些点,

这样每个点只需要遍历一次即可

然而以上是看题解才知道

我好菜啊

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm> #define N 100010
using namespace std; struct road{
int u,m,v;
}ro[N]; int len=,n,m;//n代表一共有几个城市
int first[N],last[N];
int vv[N],maxx[N],links[N];
void insert(int xx,int yy,int zz)
{
len++;
ro[len].u=xx;ro[len].m=yy;ro[len].v=zz;
last[len]=first[xx];first[xx]=len;
} void init()
{
cin>>n>>m;
for(int i=;i<=m;i++)
{
int aa,bb;
cin>>aa>>bb;
insert(bb,aa,);
links[aa]++;
}
} void debug_output()
{
for(int i=;i<=len;i++)
{
cout<<ro[i].u<<' '<<ro[i].m<<' '<<ro[i].v<<' '<<first[i]<<' '<<last[i];
cout<<endl;
}
}
bool flag[N]; inline void judge(int k,int dd){ if(maxx[k]>dd) maxx[k]=dd;} void dfs(int Point,int st)
{
if(maxx[Point]) return;
maxx[Point]=st;
for(int i=first[Point];i;i=last[i])//这个操作要记好,可以遍历单源点的每一条边
if(!maxx[ro[i].m]) dfs(ro[i].m,st);
return; } void output()
{
for(int i=;i<=n;i++) cout<<maxx[i]<<' ';
cout<<endl;
}
int main()
{
init();
for(int i=n;i>=;i--) dfs(i,i);
output();
return ;
}

写的一如既往的长,,,

溜了溜了

洛谷P3916||图的遍历||反向建图||链式前向星||dfs的更多相关文章

  1. 洛谷P3371单源最短路径Dijkstra版(链式前向星处理)

    首先讲解一下链式前向星是什么.简单的来说就是用一个数组(用结构体来表示多个量)来存一张图,每一条边的出结点的编号都指向这条边同一出结点的另一个编号(怎么这么的绕) 如下面的程序就是存链式前向星.(不用 ...

  2. 链式前向星存树图和遍历它的两种方法【dfs、bfs】

    目录 一.链式前向星存图 二.两种遍历方法 一.链式前向星存图:(n个点,n-1条边) 链式前向星把上面的树图存下来,输入: 9 ///代表要存进去n个点 1 2 ///下面是n-1条边,每条边连接两 ...

  3. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  4. POJ 1655 Balancing Act ( 树的重心板子题,链式前向星建图)

    题意: 给你一个由n个节点n-1条边构成的一棵树,你需要输出树的重心是那个节点,以及重心删除后得到的最大子树的节点个数size,如果size相同就选取编号最小的 题解: 树的重心定义:找到一个点,其所 ...

  5. 最短路 spfa 算法 && 链式前向星存图

    推荐博客  https://i.cnblogs.com/EditPosts.aspx?opt=1 http://blog.csdn.net/mcdonnell_douglas/article/deta ...

  6. 图的存储结构:邻接矩阵(邻接表)&链式前向星

    [概念]疏松图&稠密图: 疏松图指,点连接的边不多的图,反之(点连接的边多)则为稠密图. Tips:邻接矩阵与邻接表相比,疏松图多用邻接表,稠密图多用邻接矩阵. 邻接矩阵: 开一个二维数组gr ...

  7. UESTC 30.最短路-最短路(Floyd or Spfa(链式前向星存图))

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  8. 三种邻接表存图模板:vector邻接表、数组邻接表、链式前向星

    vector邻接表: ; struct Edge{ int u,v,w; Edge(int _u=0,int _v=0,int _w=0){u=_u,v=_v,w=_w;} }; vector< ...

  9. Pants On Fire(链式前向星存图、dfs)

    Pants On Fire 传送门:链接  来源:upc9653 题目描述 Donald and Mike are the leaders of the free world and haven't ...

随机推荐

  1. git 入门与应用

    git可视化界面的项目版本控制软件,适用于git项目管理 SourceTree 安装方法 https://blog.csdn.net/qq_26230421/article/details/79921 ...

  2. LeetCode 147. Insertion Sort List 链表插入排序 C++/Java

    Sort a linked list using insertion sort. A graphical example of insertion sort. The partial sorted l ...

  3. js自执行事件

    let a = document.createElement("a");let event = new MouseEvent("click");a.downlo ...

  4. 《深入理解java虚拟机》读书笔记——垃圾收集与内存分配策略

    可回收判定两种算法 引用计数法(Reference Counting):引用为0时可回收. 可达性分析法(Reachability Analysis): 从GCRoots对象到这个对象不可达. GCR ...

  5. abp .net core area routes

    添加area之后,一直访问不到area中的地址 1:Areas中的Controller必须要继承自 zzzControllerBase 2:该Controller必须加上 area特性

  6. JMETER之socket接口性能测试

    公司的**产品经过换代升级,终于要上线了,纯java编码,包括POS(PC/安卓平板)版.WEB版.微信版,各终端通过 Webservice服务共享数据资源,因此Webservice各接口的性能测试就 ...

  7. ORM全集

    Django终端打印SQL语句 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console' ...

  8. Cookie在前端读不到 多半是因为Cookie在服务器端的设置是HttpOnly 意味着只能在后台操作Cookie

    比如Shiro框架的 RememberMe Cookie 是不允许Js进行读写的 只能在服务器端通过同一个域的请求获得 import com.constantine.forum.exception.F ...

  9. 使用spring-session共享springmvc项目的session

    一.说在前面 spring mvc项目,使用nginx,tomcat部署. 之前没做session共享,而nginx采用sticky模块进行分发. 但发现有时不能正确地指向同一台服务器,从而导致ses ...

  10. 把http网站变成https网站

    所需条件: 一个网站域名,必须是注册的合法域名,国内域名最好已经通过备案: 一个空间,可以是虚拟空间或者云主机: 一张SSL证书. 操作步骤: 域名注册.国内的有万网和国外GoDaddy,当然域名注册 ...