codeforces 508 D. Tanya and Password (fleury算法)

来源:互联网 发布:python批量替换字符串 编辑:程序博客网 时间:2024/05/21 05:41

codeforces 508 D. Tanya and Password (fleury算法)

题目链接:

http://codeforces.ru/problemset/problem/508/D

题意:
给出n个长度为3的字符串,如:abc bca aab 如果一个字符串的长度为2的后缀等于,另外一个字符串的长度为2的前缀,则这两个字符串能连起来,比如:aabca,然后这n个字符串可以形成一个图,求图上的一条欧拉通路。
限制:
1 <= n <= 2*10^5,字符串里面有大写字母,小写字母
思路:
把每个字符串当成边,其前缀后缀当作点,如:abc -> ab到bc。
则这个问题化为:有62*62个点,2*10^5条边的图,求一条欧拉通路的题目。
用fleury(弗罗莱),个人感觉用邻接表实现效率比邻接矩阵

ps:这道题dfs会爆栈,把它改成非递归的就行。


附上fleury算法链接

http://www.cnblogs.com/Lyush/archive/2013/04/22/3036659.html


0 0
原创粉丝点击