题目名称 1538. [AHOI 2005] LANE 航线规划
输入输出 lane.in/out
难度等级 ★★★★
时间限制 1000 ms (1 s)
内存限制 64 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-03-02加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:47, 提交:158, 通过率:29.75%
Gravatarztx 100 0.146 s 44.36 MiB C++
Gravatarxyz117 100 0.178 s 4.73 MiB C++
Gravatarxyz117 100 0.208 s 4.73 MiB C++
GravatarAnonymity 100 0.224 s 6.98 MiB C++
Gravatar‎MistyEye 100 0.228 s 10.46 MiB C++
GravatarHZOI_蒟蒻一只 100 0.251 s 4.58 MiB C++
Gravatar呵呵酵母菌 100 0.255 s 10.19 MiB C++
Gravatarattack 100 0.256 s 5.63 MiB C++
GravatarAnonymity 100 0.262 s 6.98 MiB C++
GravatarFoolMike 100 0.270 s 16.33 MiB C++
关于 LANE 航线规划 的近10条评论(全部评论)
坑点:
1:边权转化点权(根节点不赋值,其他节点记录自己入边权值)
2:转化后对Link操作函数的修改
Gravatar瑆の時間~無盡輪迴·林蔭
2020-04-09 02:47 12楼
Gravatarwangxh
2017-10-21 08:07 11楼
GravatarAnonymity
2017-10-20 21:09 10楼
orz暴力dalao
GravatarAnonymity
2017-10-20 21:08 9楼
回复 @Hzoi_Mafia :
不是我说啥...你拿一个魔改过的中心思想已经有些不同的"树剖"(其实跟仙人掌剖比较接近)写过倒是你比较强劲, 但是容易误导看见这条评论的新人啊...
提倡装B有度(雾
Gravatarrvalue
2017-10-20 20:54 8楼
边双是啥QWQ
不是直接树剖就能过吗QWQ
GravatarHzoi_Mafia
2017-10-20 18:54 7楼
表示幸好数据第四个点有一个修改和询问相同,不然还得调n个小时
GravatarTroywar
2017-10-19 17:43 6楼
回复 @cstdio :
翻车了……
WA1:手残打反变量名
WA2:倒序加边忘记把端点改成bcc标号
GravatarFoolMike
2017-06-23 23:52 5楼
数组开超时竟然爆的是E而不是M,坑爹呀
Gravatarmikumikumi
2015-09-25 18:06 4楼
回复 @♔ 苔藓莙 :
You try you die don't ask why
Gravatarcstdio
2014-12-22 14:07 3楼

1538. [AHOI 2005] LANE 航线规划

★★★★   输入文件:lane.in   输出文件:lane.out   简单对比
时间限制:1 s   内存限制:64 MiB

【题目描述】

对Samuel星球的探险已经取得了非常巨大的成就,于是科学家们将目光投向了Samuel星球所在的星系——一个巨大的由千百万星球构成的Samuel星系。 星际空间站的Samuel II巨型计算机经过长期探测,已经锁定了Samuel星系中许多星球的空间坐标,并对这些星球从1开始编号1、2、3……。 一些先遣飞船已经出发,在星球之间开辟探险航线。 探险航线是双向的,例如从1号星球到3号星球开辟探险航线,那么从3号星球到1号星球也可以使用这条航线。 例如下图所示: 在5个星球之间,有5条探险航线。 A、B两星球之间,如果某条航线不存在,就无法从A星球抵达B星球,我们则称这条航线为关键航线。 显然上图中,1号与5号星球之间的关键航线有1条:即为4-5航线。 然而,在宇宙中一些未知的磁暴和行星的冲撞,使得已有的某些航线被破坏,随着越来越多的航线被破坏,探险飞船又不能及时回复这些航线,可见两个星球之间的关键航线会越来越多。 假设在上图中,航线4-2(从4号星球到2号星球)被破坏。此时,1号与5号星球之间的关键航线就有3条:1-3,3-4,4-5。 小联的任务是,不断关注航线被破坏的情况,并随时给出两个星球之间的关键航线数目。现在请你帮助完成。

【输入格式】

第一行有两个整数N,M。表示有N个星球(1< N < 30000),初始时已经有M条航线(1 < M < 100000)。随后有M行,每行有两个不相同的整数A、B表示在星球A与B之间存在一条航线。接下来每行有三个整数C、A、B。C为1表示询问当前星球A和星球B之间有多少条关键航线;C为0表示在星球A和星球B之间的航线被破坏,当后面再遇到C为1的情况时,表示询问航线被破坏后,关键路径的情况,且航线破坏后不可恢复; C为-1表示输入文件结束,这时该行没有A,B的值。被破坏的航线数目与询问的次数总和不超过40000。

【输出格式】

对每个C为1的询问,输出一行一个整数表示关键航线数目。 注意:我们保证无论航线如何被破坏,任意时刻任意两个星球都能够相互到达。在整个数据中,任意两个星球之间最多只可能存在一条直接的航线。

【样例输入】

5 5
  1 2
  1 3
  3 4
  4 5
  4 2
  1 1 5
  0 4 2
  1 5 1
  -1
  
  

【样例输出】

1
  3
  

【提示】

对于30%的数据,1<=N<=20,1<=M<=35,1<=查询次数+破坏航线数目<=100

对于50%的数据,1<=N<=5000,1<=M<=5300,1<=查询次数+破坏航线数目<=10000

对于100%的数据,1<=N<=30000,1<=M<=100000,1<=查询次数+破坏航线次数<=40000

【来源】

AHOI 2005

【题目来源】

耒阳大世界(衡阳八中) OJ 1969

Data by cstdio