首页 > 其他 > 详细

Codeforces Round #244 (Div. 2)

时间:2014-05-03 21:10:28      阅读:387      评论:0      收藏:0      [点我收藏+]

A. Police Recruits

B. Prison Transfer

A,B两个是水题。

C. Checkposts

DFS找出所有的环就行了。

每次搜索一个结点u时,给u加一个递增标号low[u],同时记录搜索u及u的子结点过程中遇到的最小标号minc,也就是当搜索u的子结点v时,minc = min(minc, low[v])。搜索完成后,如果minc < low[u],说明搜索u的子结点时又回到了u的父结点,也就是说u在一个环中,然后求出这个环的最小费用及取到最小费用的结点数。

D. Match & Catch

首先把原问题转换一下:
对于位于字符串str1和str2的两个位置p(str1中)和q(str2中):记suffix(p)和str1的LCS长度为len1,suffix(q)和str2的LCS长度为len2,suffix(p)和suffix(q)的LCS长度为len。其中suffix(i)表示从位置i开头的后缀,LCS是最长公共子串,那么题目要求的就是满足条件len > max(len1, len2)的最小的max(len1, len2)。取答案为ans = max(len1, len2) + 1,那么子串(p..p+ans-1)在str1中惟一,因为不惟一的最长子串长度为ans - 1。同样q也惟一。同时(p..p+ans-1)是str1和str2的公共子串(它是suffix(p)和suffix(q)的公共子串)。所以原问题就变成了一个纯后缀数组题目。
不知道为什么把这个题放在最后一题,感觉完全是个水题。。。。

Codeforces Round #244 (Div. 2),布布扣,bubuko.com

Codeforces Round #244 (Div. 2)

原文:http://blog.csdn.net/randygx/article/details/24919561

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!