CF1787G.Colorful Tree Again
NOI/NOI+/CTSC
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
An edge-weighted tree of n nodes is given with each edge colored in some color. Each node of this tree can be blocked or unblocked, all nodes are unblocked initially.
A simple path is a path in a graph that does not have repeating nodes. The length of a path is defined as the sum of weights of all edges on the path.
A path is good when it is a simple path consisting of edges of the same color c, all edges of color c are on this path, and every node on the path is unblocked.
You need to operate 2 kinds of queries:
- block a node,
- unblock a node.
After each query, print the maximum length among all good paths. If there are no good paths, print 0.
给定一棵含 n 个节点的边带权树,每条边被染成某种颜色。该树的每个节点可以处于“阻塞”或“未阻塞”状态,初始时所有节点均为未阻塞。
简单路径(simple path)指图中不包含重复节点的路径。路径的长度定义为该路径上所有边的权重之和。
当一条路径满足以下条件时,称为好路径(good path):
- 它是一条简单路径;
- 它仅由同一种颜色 c 的边构成;
- 该颜色 c 的所有边都出现在此路径上;
- 路径上的每个节点均处于未阻塞状态。
你需要处理两类操作查询:
- 阻塞一个节点;
- 解除一个节点的阻塞状态。
每次查询后,请输出当前所有好路径中的最大长度;若不存在任何好路径,则输出 0。
输入格式
The first line contains two integers n, q (1≤n,q≤2⋅105) — the number of nodes and the number of queries.
Then n−1 lines follow, each containing four integers u, v, w and c (1≤u,v,w,c≤n; u=v), denoting a weighted edge connecting node u and node v with weight w and color c. It is guaranteed that these edges form a tree.
Then q lines follow, each containing two integers p and x (p=0 or p=1, 1≤x≤n), denoting a query:
- if p=0, block the node x. It's guaranteed that it's not blocked at this time;
- if p=1, unblock the node x. It's guaranteed that it's blocked at this time.
第一行包含两个整数 n、q(1≤n,q≤2⋅105),分别表示节点数和查询数。
接下来 n−1 行,每行包含四个整数 u、v、w 和 c(1≤u,v,w,c≤n;u=v),表示一条连接节点 u 和节点 v 的带权边,其权重为 w,颜色为 c。保证这些边构成一棵树。
接下来 q 行,每行包含两个整数 p 和 x(p=0 或 p=1,1≤x≤n),表示一个查询:
- 若 p=0,则封锁节点 x;保证此时该节点尚未被封锁;
- 若 p=1,则解除对节点 x 的封锁;保证此时该节点已被封锁。
输出格式
For each query, print the maximum length of a good path. If there are no good paths, print 0.
对于每个查询,输出一条好路径的最大长度。如果没有好路径,则输出 0。
输入输出样例
输入#1
5 4 4 1 3 4 5 2 4 4 3 1 3 2 1 2 5 1 0 4 0 3 0 2 1 3
输出#1
5 5 0 3
输入#2
5 5 4 1 4 4 4 5 2 2 3 1 2 4 3 2 3 1 0 3 0 4 1 3 1 4 0 1
输出#2
2 0 3 6 3
输入#3
6 9 3 2 2 3 2 4 4 2 3 1 5 5 6 4 3 2 5 3 1 3 0 2 0 4 0 5 0 6 1 2 1 4 1 5 0 3 1 6
输出#3
5 5 5 5 5 5 5 0 7
输入#4
1 2 0 1 1 1
输出#4
0 0
输入解题思路,AI测评打分。不知道怎么写?