AT_arc173_d.[ARC173D] Bracket Walk
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个包含 N 个顶点和 M 条边的有向图 G。顶点编号为 1 到 N,每条边都被赋予了 ( 或 ) 的标签。第 i 条边是从顶点 ui 指向顶点 vi 的有向边,标签为 ci。该图中不存在重边和自环。
对于任意两个顶点 s,t,都存在从 s 到 t 的路径。
请判断在图 G 上是否存在满足以下所有条件的步行:
- 步行的起点和终点是同一个顶点。
- 对于 i=1,2,…,M,第 i 条边在步行中至少被使用一次。
- 按照步行中边的使用顺序,将边的标签依次排列得到的字符串是一个合法的括号序列。
步行的定义如下:在图 G 上,步行是一个由 k 个顶点和 k−1 条边交替组成的序列 (v1,e1,v2,…,vk−1,ek−1,vk),其中每条边 ei 是从 vi 指向 vi+1 的有向边。v1 和 vk 分别称为步行的起点和终点。
合法的括号序列定义如下:
- 空字符串是合法的括号序列。
- 如果 A 是一个合法的括号序列,则
(、A、)按顺序连接得到的字符串也是合法的括号序列。 - 如果 A,B 是非空的合法括号序列,则 A,B 按顺序连接得到的字符串也是合法的括号序列。
输入格式
输入通过标准输入给出,格式如下:
N M u1 v1 c1 u2 v2 c2 ⋮ uM vM cM
输出格式
如果存在满足条件的步行,输出 Yes,否则输出 No。
输入输出样例
输入#1
5 7 1 2 ( 2 3 ) 3 4 ( 4 1 ) 2 4 ) 4 5 ( 5 1 )
输出#1
Yes
输入#2
2 2 1 2 ) 2 1 )
输出#2
No
输入#3
10 20 4 5 ( 5 6 ( 6 7 ) 2 5 ) 5 8 ( 6 3 ) 8 5 ) 1 2 ( 9 10 ( 4 7 ( 3 4 ) 8 9 ( 2 1 ) 1 4 ) 2 3 ) 3 2 ( 7 8 ( 7 4 ) 10 9 ) 9 8 )
输出#3
Yes
说明/提示
限制条件
- 2≤N≤4000
- N≤M≤8000
- 1≤ui,vi≤N
- ci 是
(或)之一 - ui=vi
- 如果 i=j,则 (ui,vi)=(uj,vj)
- 输入的所有数值均为整数
- 输入给定的图中,对于任意两个顶点 s,t,都存在从 s 到 t 的路径
样例解释 1
按顺序使用边 1,2,3,4,1,5,6,7 的步行,所有边都至少被用过一次,且按使用顺序排列的标签字符串 ()()()() 是一个合法的括号序列,因此满足条件。步行允许多次经过同一条边或同一顶点。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?