题目名称 1867. [国家集训队2011]旅游
输入输出 nt2011_travel.in/out
难度等级 ★★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-12-10加入
开放分组 全部用户
提交状态
分类标签
动态树 树链剖分
分享题解
通过:152, 提交:378, 通过率:40.21%
GravatarJSX 100 0.087 s 53.89 MiB C++
GravatarFoenix 100 0.087 s 57.15 MiB C++
GravatarTroywar 100 0.091 s 2.16 MiB C++
GravatarJSX 100 0.104 s 6.21 MiB C++
GravatarJSX 100 0.104 s 6.21 MiB C++
Gravatarztx 100 0.105 s 6.49 MiB C++
GravatarJSX 100 0.107 s 6.21 MiB C++
GravatarSky_miner 100 0.115 s 10.62 MiB C++
Gravatarstdafx.h 100 0.118 s 6.49 MiB C++
Gravatar炎帝 100 0.118 s 53.89 MiB C++
关于 旅游 的近10条评论(全部评论)
操作麻烦,码长,但淼淼
Gravatar┭┮﹏┭┮
2023-12-07 18:24 23楼
第一次写到200行程序,四十分钟一A,爽
GravatarHale
2019-05-29 19:54 22楼
变相反数时忘改sum了
GravatarAAAAAAAAAA
2017-09-08 16:57 21楼
调一道树剖刷了个COGS首页的屏= =
发现相反数打错了= =
GravatarHzoi_Mafia
2017-08-16 06:45 20楼
写着写着就忘了pushdown了,尬死了 = =
Gravatar~玖湫~
2017-08-15 17:45 19楼
回复 @hzoi_LadyLex :
l==r了,就不用再交换了,反正就这一个数
GravatarHZOI_蒟蒻一只
2017-05-07 06:36 18楼
第一次,查询没有下传标记,炸(然而此时并未发现)
第二次,尝试新写法(用成员函数负责维护下传翻转),结果Negate里面改错了,炸
第三次,发现查询没有下传遂尝试用旧写法配下传标记,过于复杂,炸
第四次,新写法配下传标记,9A1E,炸
第五/六次,尝试开大数组,依然炸
第七次,意识到son数组初始化为了0然而有个点的编号就是0遂初始化为-1,没删干净调试输出代码,炸
第八次,依然没删干净调试输出,炸
第九次,成功删掉调试输出,A了QAQ
看来我的蒟蒻与日俱箬...
Gravatarrvalue
2017-05-06 18:03 17楼
回复 @MINE·MINE :
inline void LTneg(int x,int l,int r,int qx,int qy)
{
if(l==r)
{
Max[x]=-Max[x],Sum[x]=-Sum[x],Min[x]=-Min[x];
return ;
}
……
}

这里面在取相反数之后,不应该交换Max[x]和Min[x]的值吗?
GravatarLadyLex
2017-05-01 15:47 16楼
莫名其妙就过了
GravatarHZOI_蒟蒻一只
2017-05-01 08:44 15楼
改了半天,一直 EEEE 最后发现文件名错了,让我死吧
GravatarWildRage
2017-04-30 19:43 14楼

1867. [国家集训队2011]旅游

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

【问题描述】

Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说,T 城中只有N - 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座桥会增加w 的愉悦度,这或许是正的也可能是负的。有时,Ray 看待同一座桥的心情也会发生改变。现在,Ray想让你帮他计算从u 景点到v 景点能获得的总愉悦度。有时,他还想知道某段路上最美丽的桥所提供的最大愉悦度,或是某段路上最糟糕的一座桥提供的最低愉悦度。

【输入格式】

输入的第一行包含一个整数N,表示T 城中的景点个数。N <= 100000。

接下来N - 1 行,每行三个整数u、v 和w,表示有一条u 到v,使 Ray 愉悦度增加w 的桥。桥的编号为1 ... N - 1。|w| <= 1000。

输入的第N + 1 行包含一个整数M,表示Ray 的操作数目。M <= 500000。

接下来的M 行,操作有如下三种形式:

C i w,表示Ray 对于经过第i 座桥的愉悦度变成了w。

N u v,表示Ray 对于经过景点u 到v 的路径上的每一座桥的愉悦度都变成原来的相反数。

SUM u v,表示询问从景点u 到v 所获得的总愉悦度。

MAX u v,表示询问从景点u 到v 的路径上的所有桥中某一座桥所提供的最大愉悦度。

MIN u v,表示询问从景点u 到v 的路径上的所有桥中某一座桥所提供的最小愉悦度。

测试数据保证,任意时刻,Ray 对于经过每一座桥的愉悦度的绝对值小于等于1000。

【输出格式】

对于每一个询问(操作S、MAX 和MIN),输出答案。

【样例输入】

3
0 1 1
1 2 2
8
SUM 0 2
MAX 0 2
N 0 1
SUM 0 2
MIN 0 2
C 1 3
SUM 0 2
MAX 0 2

【样例输出】

3
2
1
-1
5
3

【来源】

2011中国国家集训队命题答辩(宋方睿)