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
BZOJ3669
【
BZOJ3669
】[Noi2014]魔法森林 LCT
【
BZOJ3669
】[Noi2014]魔法森林Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。
aodanchui1057
·
2020-09-15 13:46
python
[贪心] 合并果子
BZOJ3669
合并果子题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。
C20200902
·
2020-08-11 00:09
NOIP
贪心
OI路上的题解
BZOJ3669
:[NOI2014]魔法森林——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=3669https://www.luogu.org/problemnew/show/P2387为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含n个节点m条边的无向图,节点标号为1,2,3,…,n,边标号为1,2,3,…,m。初始时小E同学在1号节点,隐士则住
weixin_34334744
·
2020-08-09 00:04
【
BZOJ3669
】NOI2014-魔法森林(神奇的解法)
在一个魔法森林中,有n个节点(n=ai,B>=bi,求min(A+B)。本题目的标准解法是LCT(link-cut-tree),这里讨论一种基于搜索算法的解决方法,其编程复杂性和理解难度略优于LCT做法。如果每个节点只有一个值ai,则本题是一道标准的简单动态规划:dp[i]=max(min(dp[j]),ai)map[i][j]=1可以使用spfa或其他最短路算法实现。当每个节点的值从1个变为2个
qxAi
·
2020-08-08 22:46
算法
LCT复习之
bzoj3669
: [Noi2014]魔法森林
题意为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击。幸运的是,在号节点住着两种守护精灵:A型守护精灵与B型守护精灵。
OI界第一麻瓜
·
2020-08-08 19:27
LCT
BZOJ3669
: [Noi2014]魔法森林(LCT)
传送门题意给一个无向图,每个边上有边权ai,bi,求一条路径,使得max(ai)+max(bi)最小。题解将a值排序后LCT暴力加边维护关于b值的最小生成树。注意有一点是LCT不能维护边上的权值,只能维护点上的权值,所以要将每条连边上加一个点,Splay顺便维护最大值即可。Code#includeusingnamespacestd;constintMaxn=5e4+50,Maxm=1e5+50;c
DZYO
·
2020-08-08 19:15
动态树
【
bzoj3669
】魔法森林 LCT+并查集
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3669【题解】据说spfa可以说过。。。。。。LCT做法:将边权按其中一个值排序,往里面加边,用并查集维护图的连通性,当1与n联通时更新答案。用LCT维护图中的另一边权的最大值,如果边的两端不连通直接加入,否则说明构成了环,删去环上最大的边。小技巧:边可以建成点,向边的两端连边,在该点上维护
chty_syq
·
2020-08-08 14:28
bzoj
LCT
bzoj3669
对于这道题的解法,感觉是部分暴力,枚举带几只A型守护精灵,就可以将这道题转化成求类似于bzoj2594了。参考题解:http://wenku.baidu.com/view/a611cec4dd3383c4bb4cd2d8.htmlhttp://www.cnblogs.com/JoeFan/p/4451249.html找错时深刻体会到老师讲的静态测试能找出一半的错。(昨天把手机电池摔坏了,借别人的手
aoyong9901
·
2020-08-08 14:53
BZOJ3669
NOI2014 魔法森林 LCT/最短路
题意:给定一张无向图,图中每个边都有a,b两种边权,求一条从S到T的路径,使得路径中(a的最大值+b的最大值)最小法一:我们先将边按a排序,每次加入一条边,然后将加入的边的两端入队,跑一边SPFA求从1到达每个节点路径上的最长的一条边的长度。这样需要跑M边SPFA,然而有一个优化——我们可以直接将所有a相同的边一次性全部入队然后跑一遍SPFA,每跑完一遍SPFA用a+d[N]来更新答案,这样的复杂
a18700013354
·
2020-08-08 13:05
【
BZOJ3669
】【NOI2014】魔法森林 (spfa动态队列加点算法)
3669:[Noi2014]魔法森林TimeLimit:30SecMemoryLimit:512MBSubmit:254Solved:140[Submit][Status]Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E
空灰冰魂
·
2020-08-08 13:58
常见图论模型
NOI
SPFA高级应用
[
BZOJ3669
][Noi2014]魔法森林(并查集+LCT)
题目描述传送门题解这道题学到了一个新的姿势:LCT化边权为点权。首先按照一个权ai排序,然后从小到大加边。由于1~n的通路一定是一棵生成树,可以用并查集判断两个点是否连通,并且用LCT维护这棵生成树。如果当前边的两个端点连通的话,那么找一下这两个点树链上的最大值bi,如果bi大于当前边的bi,那么就将这个大的砍掉,将这条边加上,否则的话不加边。加完一条边了之后判断1和n的连通性,如果连通的话更新答
Clove_unique
·
2020-08-08 12:47
题解
并查集
lct
NOI2014 魔法森林 LCT维护MST
BZOJ3669
题面从更简单的情况入手,如果边权只有a没有b应该怎么处理?这时候问题就是找一条从1到N的路径,使得最长的边尽量短。根据最小生成树的性质,这样的边一定在最小生成树上。
rgnoH
·
2020-08-08 11:31
LCT
最小生成树
【LCT维护生成树】
BZOJ3669
[Noi2014]魔法森林
题面在这里考虑枚举a的最大值那么只需要让1→n1→n的最大值最小即可这样其实就是在做生成树,若当前构成环,则删去环中的最大边如果1到n联通就更新答案了具体实现可以按a排序,枚举每条边作为最大边用LCT维护生成树,其中最大值信息需要保存边的标号然后因为这道题是边权,所以要将边转化为点处理示例程序:#include#includeusingnamespacestd;inlinecharnc(){sta
linkfqy
·
2020-07-04 21:19
BZOJ
LCT
我的OI历程
常见OJ题解专栏
【
BZOJ3669
】魔法森林(LCT动态维护最小生成树)
题目连接题目描述为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击。幸运的是,在号节点住着两种守护精灵:A型守护精灵与B
NeosKnight
·
2018-02-21 17:26
======题解======
LCT(动态树)
【
BZOJ3669
】魔法森林(SPFA动态加边)
题目连接题目描述为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击。幸运的是,在号节点住着两种守护精灵:A型守护精灵与B
NeosKnight
·
2018-02-21 11:29
======题解======
——图论———
图上的路径问题
【
BZOJ3669
】[Noi2014]魔法森林【Link-Cut Tree】【最小生成树】
【题目链接】一开始写了个二分a+最短路b,骗了65分,然后改成二分b+最短路a,骗了70分。。发现二分是不对的之后,给答案取min,骗到了90分。出题人太不负责任了。正解是枚举a,用LCT维护b的最小生成树。/*TelekineticForestGuard*/ #include #include #include usingnamespacestd; constintmaxn=50005,ma
BraketBN
·
2016-05-11 10:00
[
BZOJ3669
][Noi2014]魔法森林(并查集+LCT)
题目描述传送门题解这道题学到了一个新的姿势:LCT化边权为点权。首先按照一个权ai排序,然后从小到大加边。由于1~n的通路一定是一棵生成树,可以用并查集判断两个点是否连通,并且用LCT维护这棵生成树。如果当前边的两个端点连通的话,那么找一下这两个点树链上的最大值bi,如果bi大于当前边的bi,那么就将这个大的砍掉,将这条边加上,否则的话不加边。加完一条边了之后判断1和n的连通性,如果连通的话更新答
Clove_unique
·
2016-05-04 20:00
并查集
bzoj
LCT
【
BZOJ3669
】【codevs3314】魔法森林,写作LCT,读作SPFA
传送门1传送门2写在前面:我要种树!!思路:SPFA:理论复杂度很蛋疼,但实际效果不错,按a排序(b也可以)后从小到大枚举每条边,dis数组不必清空,每次往队列里扔进当前边的两个端点进行拓展,ans=min(ans,dis[n]+v[i]),v[i]指当前边i的a,dis[n]记录的是1-n路径上最大的b,每次扩展走的路径必须是之前已经枚举过的边,这样才能保证1-n路径上的a的最大值不大于当前边i
xym_CSDN
·
2016-04-06 09:00
【
bzoj3669
】[Noi2014]魔法森林 LCT
Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击。幸运的是,在号节点住着两种守护精灵:A型守护精
LOI_DQS
·
2016-03-20 22:00
bzoj3669
[Noi2014]魔法森林
题目链接linkcuttree先把边按a排序,用并查集维护连通块,一条边一条边往里面加,1和n连通就更新答案lct中需要维护当前链的边权最大值,把边权转化为点权:在边中间插一个点,边权赋值到点上若当前边的b 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#incl
HugeGun
·
2016-03-03 20:00
bzoj3669
【NOI2014】魔法森林 SPFA
调了一整个晚上一脸懵逼,加了个并查集优化就WA了==,然而并没能发现题意就是两个点权的最短路,标准做法LCT维护,当然我们考虑这是随机数据,我们可以用SPFA水枚举其中一个点权,然后做另外一个点权的最短路,同时需要用许多优化防止TLE比如因为单调性,于是每次SPFA并不需要把dis数组清0,用优先队列来维护每一次放进去的点不然写起来全是WA之类的/*************************
BPM136
·
2016-03-02 21:00
BZOJ3669
: [Noi2014]魔法森林
LCT一开始自己脑子抽用节点的权值表示连向父亲的边的长度后来发现不能拿来搞翻转然后看了别人的题解 发现居然可以新开一个点。。。。药丸之后又调试了一天 最后听了度教的话 重打。。发现好像是自己的Access打跪了。。。。完了。。。。一天只调好一道题。。。。去死吧!#include #include #include #include #include usingnamespacestd; charc
liutian429073576
·
2016-02-20 18:00
BZOJ3669
[Noi2014]魔法森林
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3669[题目大意]给你一个图,让你找到一条从1到n的路径,使得这条路径上的[最大的a值]+[最大的b值]最小.[分析]双瓶颈的最小生成树的感觉,可以首先按a值排序,然后一条边一条边的加入.如果之前连接的两点还未连通,那么连上先满足最后连通性的必要.如果之前连接的两点已经连通,那么就在原来的路
诚叙
·
2016-01-16 08:00
[
bzoj3669
][NOI2014]魔法森林
题目大意给定N个点M条边的无向图,每条边有两个权值a与b。求一条1到n的路径使得路径经过边的最大a与最大b的和最小。无法到达输出-1。n #include #include #include #definefo(i,a,b)for(i=a;ista; structdong{ intx,y,a,b; }; donge[maxn*2]; inttree[maxn*3][2],key[maxn*3],f
WerKeyTom_FTD
·
2016-01-14 22:00
【
BZOJ3669
】【NOI2014】魔法森林 (spfa动态队列加点算法)
3669:[Noi2014]魔法森林TimeLimit: 30Sec MemoryLimit: 512MBSubmit: 254 Solved: 140[Submit][Status]Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住
Vmurder
·
2014-09-02 15:00
SPFA
NOI2014
双权值最短路
BZOJ3669
魔法森林
上一页
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
其他