E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ3832
【图论-拓扑序】
BZOJ3832
[Poi2014]Rally
【题目】原题地址给定一个N个点M条边的有向无环图,每条边长度都是1。请找到一个点,使得删掉这个点后剩余的图中的最长路径最短。【题目分析】首先这是一个DAG,我们还是很容易联想到DAG的一些特性,比如Topsort之类的,在这题就很有用了qwq。【解题思路】首先当然是建超级源超级汇。因为这是一个DAG,所以我们就跑一下dp,算出源点到所有点的最长路(记作ff)以及所有点到汇的最长路(记作gg)。令边
Dream_Lolita
·
2018-02-16 10:38
图论-Topsort
[
BZOJ3832
][Poi2014]Rally(拓扑序+线段树)
题目描述传送门题解考场上只会打枚举删点的暴力,学长讲题了之后感觉很厉害呀。设f[i],g[i]分别表示到点i的最长路径和从点i开始的最长路径.通过两遍拓扑排序就可以求出这两个数组.对于一条边(u,v)它可以产生的最长路径就是f[u]+e[i].v+g[v];我们用权值线段树维护当前所有合法边产生的最长路径的最大值.考试的时候一直在往枚举的方向考虑,没有想到动态维护直接查询可以用到权值线段树.首先把
Clove_unique
·
2016-08-02 23:38
题解
线段树
拓扑序
[
BZOJ3832
][Poi2014]Rally(拓扑序+线段树)
题目描述传送门题解考场上只会打枚举删点的暴力,学长讲题了之后感觉很厉害呀。设f[i],g[i]分别表示到点i的最长路径和从点i开始的最长路径.通过两遍拓扑排序就可以求出这两个数组.对于一条边(u,v)它可以产生的最长路径就是f[u]+e[i].v+g[v];我们用权值线段树维护当前所有合法边产生的最长路径的最大值.考试的时候一直在往枚举的方向考虑,没有想到动态维护直接查询可以用到权值线段树.首先把
Clove_unique
·
2016-08-02 23:38
题解
线段树
拓扑序
BZOJ3832
: [Poi2014]Rally
题目大意:给你一个DAG,让你删掉一个点,使得图中最长路最短这是一道神题啊,不上网搜题解我是肯定不会做....首先新建超级源汇,问题就变成了求删掉一个点后,超级源点到超级汇点的最长路最短是多少首先需要想到,任意的割集都会把至少一条从源到汇的最长路上的边割掉所以我们可以先计算出源点到所有点的最长路以及所有点到汇点的最长路然后为每个边赋一个权值,权值=源点到起点的最长路+终点到汇点的最短路然后我们可以
commonc
·
2016-05-13 09:39
BZOJ
POI
拓扑排序
好题
STL
最短路/最长路
BZOJ3832
: [Poi2014]Rally
f[0][i]为i出发的最长路,f[1][i]为到i的最长路 新建源汇S,T,S向每个点连边,每个点向T连边 将所有点划分为两个集合S与T,一开始S中只有S,其它点都在T中 用一棵线段树维护所有连接属于两个集合的点的边,权值为f[1][u]+f[0][v] 按拓扑序依次计算去掉每个点后图中的最长路 对于当前计算的点x,先将所有连向x的边删除,此时最长路长度为线段树中的最大值 然后再将所
·
2015-10-31 11:49
poi
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他