参考博客(感谢博主):http://blog.csdn.net/yo_bc/article/details/77917288

题意:

给定一个有向无环图,求该图的最长路。

思路:

由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可。

 #include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1e4+;
const int maxm=1e5+;
struct Node
{
int v,w,next;
}edge[maxm];
int no,head[maxn];
int t,n,m;
int deg[maxn],val[maxn];
queue<int>q; void init()
{
no=;
memset(head,-,sizeof(head));
memset(deg,,sizeof(deg));
memset(val,,sizeof(val));
} void topsort()
{
while(!q.empty()) q.pop();
for(int i=;i<=n;i++)
if(!deg[i]) q.push(i);
int ans=;
while(!q.empty())
{
int u=q.front();q.pop();
for(int k=head[u];k+;k=edge[k].next){
int v=edge[k].v;
val[v]=max(val[v],val[u]+edge[k].w);
if(--deg[v]==) q.push(v);
}
}
cout<<*max_element(val+,val++n)<<endl; } int main()
{
for(cin>>t;t--;)
{
cin>>n>>m;
init();
for(int i=;i<=m;i++){
int u,v,w;
cin>>u>>v>>w;
edge[no].v=v;edge[no].w=w;
edge[no].next=head[u],head[u]=no++;
}
topsort();
}
return ;
}

Skiing 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题(拓扑序求有向图最长路)的更多相关文章

  1. HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)

    HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: ...

  2. hdu5438(2015长春赛区网络赛1002)拓扑序+DFS

    题意:给出一张无向图,每个节点有各自的权值,问在点数为奇数的圈中的点的权值总和是多少. 通过拓扑序的做法标记出所有非圈上的点,做法就是加每条边的时候将两点的入度都加一,然后将所有度数为1的点入队,删去 ...

  3. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem【状态压缩】

    2017 ACM-ICPC 亚洲区(南宁赛区)网络赛  M. Frequent Subsets Problem 题意:给定N和α还有M个U={1,2,3,...N}的子集,求子集X个数,X满足:X是U ...

  4. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  5. ICPC 2018 徐州赛区网络赛

    ACM-ICPC 2018 徐州赛区网络赛  去年博客记录过这场比赛经历:该死的水题  一年过去了,不被水题卡了,但难题也没多做几道.水平微微有点长进.     D. Easy Math 题意:   ...

  6. ACM-ICPC 2018 焦作赛区网络预赛 H题 String and Times(SAM)

    Now you have a string consists of uppercase letters, two integers AA and BB. We call a substring won ...

  7. 【2017 ACM/ICPC 乌鲁木齐赛区网络赛环境测试赛 E】蒜头君的排序

    [链接]h在这里写链接 [题意] 在这里写题意 [题解] 莫队算法+树状数组. 区间增加1或减少1. 对逆序对的影响是固定的. (用冒泡排序变成升序的交换次数,就是逆序对的个数) [错的次数] 0 [ ...

  8. 2017 乌鲁木齐赛区网络赛 J Our Journey of Dalian Ends 费用流

    题目描述: Life is a journey, and the road we travel has twists and turns, which sometimes lead us to une ...

  9. [刷题]ACM/ICPC 2016北京赛站网络赛 第1题 第3题

    第一次玩ACM...有点小紧张小兴奋.这题目好难啊,只是网赛就这么难...只把最简单的两题做出来了. 题目1: 代码: //#define _ACM_ #include<iostream> ...

随机推荐

  1. BigDecimal的四则运算及小数位数格式

    一.加法 BigDecimal b1 = new BigDecimal("20");BigDecimal b2 = new BigDecimal("30");B ...

  2. NDK(23) 使用CMake 构建 c/c++代码库

    1.官网 https://developer.android.com/studio/projects/add-native-code.html 2.android studio 安装相关工具 在打开的 ...

  3. python 实现发送短信验证码

    [说明]短信接口使用的是“聚合数据”上面的接口. 那么在使用接口前,需要在聚合数据上面注册,进行申请接口.当然在正式使用之前,我们可以使用申请免得的进行测试. 一.申请成功后,需做的准备工作如下: 1 ...

  4. C++: Mac上安装Boost库并使用CLion开发

    1.下载安装Boost库 官网下载最新版本1.65.0:http://www.boost.org/users/history/version_1_65_0.html 选择UNIX版本: 下载后解压cd ...

  5. SELECT (@i :=@i + 1)生成序列号

    转载自https://blog.csdn.net/qq_27922171/article/details/86477544 同类别自动生成序列号:https://bbs.csdn.net/topics ...

  6. IDG资本全球拼图:近10年揽26家独角兽,最敢出手VC再造"VC+"

    IDG资本全球拼图:近10年揽26家独角兽,最敢出手VC再造"VC+" 2017-04-01 15:33   两天前,IDG资本合伙人过以宏提出的“VC+”,又有了新的内涵——全球 ...

  7. Hibernate:**not found while looking for property: id https://blog.csdn.net/weixin_43827144/article/details/88935334

    https://blog.csdn.net/weixin_43827144/article/details/88935334 在程序执行时可能会报找不到属性的错误:例如:class Student n ...

  8. PrintStream 类

    5.PrintStream类(重点) (1)基本概念 java.io.PrintStream类用于打印各种数据内容.   (2)常用的方法 PrintStream(OutputStream out) ...

  9. Springboot 创建的maven获取resource资源下的文件的两种方式

    Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式: 资源目录: resources/config/wordFileXml/wordFileRecord.xm ...

  10. Centos7.2源码编译安装LA(N)MP

    LAMP环境中php是作为apache的模块安装的,所以安装顺序是php放在apache的后面安装,这样便于安装php时可以在apache的模块目录生成对应的php模块. apache版本:2.4.3 ...