计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)
题意:
给定一个有向无环图,求该图的最长路。
思路:
由于是有向无环图,所以最长路肯定是一个入度为0到出度为0的路径,拓扑序在确定当前点之前能够考虑到所有到它的情况,所以最后取个最值即可。
代码:
#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int maxn = 1e4+5;
const int maxm = 1e5+5;
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 = 0;memset(head, -1, sizeof head);memset(deg, 0, sizeof deg);memset(val, 0, sizeof val);
}
inline void add(int u, int v, int w)
{edge[no].v = v; edge[no].w = w;edge[no].next = head[u]; head[u] = no++;
}
void topsort()
{while(!q.empty()) q.pop();for(int i = 1; i <= n; ++i)if(!deg[i]) q.push(i);int ans = 0;while(!q.empty()){int u = q.front(); q.pop();for(int k = head[u]; k+1; k = edge[k].next){int v = edge[k].v;val[v] = max(val[v], edge[k].w+val[u]);if(--deg[v] == 0) q.push(v);}}printf("%d\n", *max_element(val+1, val+n+1));
}
int main()
{for(scanf("%d", &t); t--;){scanf("%d %d", &n, &m); init();for(int i = 1; i <= m; ++i){int u, v, w;scanf("%d %d %d", &u, &v, &w);add(u, v, w); ++deg[v];}topsort();}return 0;
}
继续加油~
计蒜客-2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛H题Skiing(拓扑序求DAG最长路)相关推荐
- Skiing(2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 H)
Problem Description In this winter holiday, Bob has a plan for skiing at the mountain resort. This s ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛B: Out-out-control cars
问题 B: Out-out-control cars 题目描述 Two out-of-control cars crashed within about a half-hour Wednesday a ...
- 2017acm乌鲁木齐赛区网络赛F题tarjan缩点
poj1236是问把一棵树变成强联通分量,于是答案就是rudu为0的和出度为0的最大值,因为假设入度为0的多一些,先每个出度为0的连接一个入度为0的,那么还剩一些入度为0的,这时候入度为0的随意连接一 ...
- 计蒜客2020蓝桥杯大学A组模拟赛题解
计蒜客2020蓝桥杯大学A组模拟赛题解 蓝桥杯的话,去年拿了C++组的国二.今年报名了新成立的Python组,不知道能不能摸到国一的鱼 模拟赛链接如下: https://www.jisuanke.co ...
- 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析
新手,欢迎交流,剩下D题不知如何下手,望大佬指教. 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:计算周长 B. 结果填空:七巧板 C. 结果填空:苹果 ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- 计蒜客 2020 蓝桥杯大学 B 组省赛模拟赛 (一)题目及解析
新手,欢迎交流,更新完毕. 计蒜客 2020 蓝桥杯大学 A 组省赛模拟赛 (一)题目及解析 文章目录 A. 结果填空:有趣的数字 B. 结果填空:爬楼梯 C. 结果填空:七巧板 D. 结果填空:苹果 ...
- 计蒜客 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 B coin(求乘法逆元)
Bob has a not even coin, every time he tosses the coin, the probability that the coin's front face u ...
- 【计蒜客模拟赛系列】-计蒜客2021年8月普及组模拟赛
提前:本文中部分代码和思路有借鉴或摘抄计蒜客官方题解 赛后总结 本次模拟赛的难度总算正常了些 个人战绩: 220/400,排名61 ,太弱了,一大堆AK爷 题目质量评价: 题目相比CSP-J还是简单了 ...
最新文章
- 小功能 - 收藏集 - 掘金
- random类的使用
- Science:致病菌激活根系内生微生物组抵抗病害的功能
- linux7.4安装语言包,CentOS 7.4安装时报错最简单最直接的解决办法
- 郑州学python_郑州Python基础知识点学习之内置类型
- 在JPA中处理Java的LocalDateTime
- 查看java线程堵塞排查_记一次应用线程被阻塞的问题排查
- Android嵌入式安卓触摸屏|4418开发板平台
- [设计模式-行为型]解释器模式(Interpreter)
- php 分页类 bootstrap,ThinkPHP分页使用bootstrap样式
- Error generating final archive: Debug certificate expired on的解决办法
- Linux-unit-10-11-日志,IP
- Java牛客项目课_仿牛客网讨论区_第七章
- springboot-shiro-jwt-redis实现用户登录的认证与授权(前后端分离)需要有一定shiro、jwt、redis、springboot基础
- 在博客右下角设置透明卡通小美女,附上源码
- Element UI中的图标
- Zabbix学习笔记(七)---网络波动监控
- javaIO流之缓冲流
- RLC无源网络线性元件的微分方程
- 六,iOS中的金额格式化和金额大小写转换
热门文章
- 金蝶首席用户体验官对“用户体验”的思考
- 远程桌面未知的用户名_在win7中连接到远程桌面时解决用户名和密码错误的问题...
- Activity-的-36-大难点,你会几个?「建议收藏」
- 【JokerのZYNQ7020】TIMER。
- hbulider初学教程及html5五子棋小程序
- 1.1.1. Ordinary Least Squares(普通最小二乘)
- python爬取pubmed的文献_使用python來調用pubmed API快速整理文獻
- 二、基础SpringBoot2.0.0M4项目目录讲解
- Android面试题(25)-Bundle机制
- ubuntu提示系统缺失字体:symbol、wingdings、wingdings2、wingdings3、webdings,WPS无法正确显示...