标签:第二类 连向 最长 区间 给定 2019 字符串 第一类 联考
以前写完题后鸽了博客,现在补一下。
题意
给定字符串 \(s\),然后给定 \(n_a\) 个 \(A\) 类区间和 \(n_b\) 个 \(B\) 类区间,再给定 \(m\) 条从第一类区间连向第二类区间的边,一个第二类区间要连向一个第一类区间 当且仅当前者是后者的前缀。每个第一类区间的权值是区间长度,求这张图上的最长路(无限长则输出 \(-1\))。
\(n_a,n_b,|s|,m\le 2\times 10^5\)
题解
如果图直接给你,那这就是个普及组的拓扑求最长路了,若有一个点能回到自己就输出 \(-1\),否则拓扑排序递推出最长路。
然而这道题不直接给你图,但建出来图后就变成了上面的普及组问题了。下面考虑怎么建图。
第一类区间连向第二类区间的边已经给你了,在 SAM 上给对应的两点连边就醒了。
第二类区间连向第一类区间怎么处理?不难发现
标签:第二类,连向,最长,区间,给定,2019,字符串,第一类,联考
来源: https://www.cnblogs.com/scx2015noip-as-php/p/11311462.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。