hdu3472 (tju3555) HS BDC (混合图的欧拉回路)_黎嫣的博客-程序员秘密

技术标签: ACM之集训  


http://acm.hdu.edu.cn/showproblem.php?pid=3472

题意很简单,就是串单词,如果一个单词的尾字母和另一个单词的首字母相同,则可以连接起来,给你N个单词,问:能否串成一条链?

关键在于如何建图,这题稍有不同,就是有些单词是可以翻转的,但也只能用一次而已。把二十六个字母'a'到'z'作为点,把每个单词作为边,如果某个单词首尾字母分别为a和b,则可以建一条有向边<a, b>,当然,如果此单词可以翻转,则建成无向边(a, b),显然可以想到,每个单词用且只用一次使得所有单词连通,那就是说,找到一条路径,每条边都走过一次,如果闭合,显然就是欧拉回路,现在不要求闭合,算是欧拉路径。

如果不连通,或者连通度为奇数的点多于2个,显然不会有欧拉路径。判通可以用并查集来做。

先假设有欧拉路径,对起点a,终点b,加一条弧<b, a>,因为起点出度大于入度,度小于0,定向无向边的目的就是使得起点的度增加,所以这样加弧不影响欧拉路径,但是却构成了欧拉回路,最终求得欧拉回路也能保证欧拉路径的存在。

具体实现用最大流。建图方式见我另一篇讲解:http://blog.csdn.net/acceptyly/article/details/48179037

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Acceptyly/article/details/48179041

智能推荐

提取日志文件的指定内容_weixin_30745553的博客-程序员秘密

如下日志,提取出Notice:开头的行中的ctime的值,然后求平均数a.log日志文件Notice:hjhj hjj hj hj j h j hh ctime:35s fr fr f rf r fr f rNotice:hjhj hjj hj hj j h j hh ctime:35s fr fr f rf r fr f r112222221111...

困扰了我很久STM32的TIM1时钟走慢的问题终于找到原因了_Alexkey的博客-程序员秘密

在使用STM32的过程中,经常发现TIM1定时器莫名奇妙的走慢,以前一句一句的查看代码,怕晶振没起振,拿示波器看,都没有发现问题,但TIM1就是走慢了,后来只能尽量避免使用TIM1,今天再次下定决心要找到原因,最后终于发现是MDK的优化造成的。 如果默认使用Level 2 (-O

CuteEditor配置 .net控件_filespath_text_Dylan-Wang的博客-程序员秘密

CuteEditor是一款功能非常强大,支持图片上传、文件下载和word类似的文字编辑器。并且Vs2003和Vs2005都可以适用。 1、将以下文件考贝到你站点根目录下的bin内(这些在CuteEditor6.0/bin下都可以找到)CuteEditor.dllCuteEditor.ImageEditor.dll(6.0增加的EditorImage功能)CuteEditor.lic(解密文件)NetSpell.SpellChecker.dll(拼写检查功能)注:(“.dic”为扩展名的文件是词典保存为纯文本

Android制作字符串表格String.xml转EXCEL工具_string.xml to xls_菱芯草的博客-程序员秘密

public static List getAllExternalSdcardPath() { List PathList = new ArrayList(); String firstPath = Environment.getExternalStorageDirectory().getPath(); Log.d(TAG,"getAllExter

Oracle TO_DATE 日期格式大全_to_date(null)_data-life的博客-程序员秘密

Oracle中TO_DATE格式2009-04-14 10:53TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 显示值:007 yyyy four digits 四位年 显示值:2007 ...

2017北大信科推免机考+面经_北京大学信息工程学院 机试_sherry颖的博客-程序员秘密

北大信科的机考是在百练openjudge上,给了用户名密码,10道题,语言有C++,Java,Pascal等,IDE电脑里面有VS2017,Code Block,Pycharm,sublime等。面试:英语自我介绍信封里抽2道题,一道数学,一道编程,数学有考到导数与极值,概率密度,贝叶斯公式,线性空间,秩等等,涉及高等数学,线性代数,概率统计,编程有二进制数1的个数,不用除法,乘法,取

随便推点

html+ajax实现上传大文件讨论_html ajax分段上传 txt 文本_weixin_52041354的博客-程序员秘密

前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对 Http 协议较模糊,故这次采用渐进的方式来学习文件上传的原理与实践。该博客重在实践。一. Http协议原理简介HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中...

vue+vuex 回退定位到初始位置_weixin_34247155的博客-程序员秘密

先放出两张图(没错,你还在9012,做为一名资深设计师我唯一的技能点就是留白),简单说明下问题未做回退定位(从落地页回退,每次都回到A位置)想死啊有木有,每次都需要手动重新定位来选择,你大哥看到你做个这肯定想扣死你:添加回退定位后(从落地页回退,定位到点击位置)哈,好用到爆 有木有~:按照WBD国际通用惯例(我编的),先对这个demo中用到的文件做一个索引,方便对整个回退功能有个宏观的...

Pandas_关于dataFrame.mean()方法的用法与numpy.array()的使用问题_dataframe.mean api_xuchaoxin1375的博客-程序员秘密

文章目录如果dataFrame是用numpy.array()得到的对象(ndarray)来初始化,那么可能使得dataFrame.mean()方法无法正常工作:the doc of the dataFrame.mean()如果dataFrame是用numpy.array()得到的对象(ndarray)来初始化,那么可能使得dataFrame.mean()方法无法正常工作:使用字典来初始化dataFrame对象则可以使mean()正常工作''' 7 '''''' df = pd.DataFrame([

中国程序员视角下的英文命名_JavaEdge.的博客-程序员秘密

不管是日本人设计的 Ruby还是巴西人设计的 Lua,各种语法采用的全都是英语。所以,想要成为一个优秀的程序员,会用英语写代码是必要的。你肯定听说过,国内有一些程序员用汉语拼音写代码,这就是一种典型坏味道。而且程序设计语言已支持 UTF-8,用汉语拼音写代码,还不如用汉字直接写代码。这场景太低级了,不过多讨论。违反语法规则的命名CR一段代码:public void completedTranslate(final List&lt;ChapterId&gt; chapterIds) { List&

杂项_dream in the rain的博客-程序员秘密

配环境变量:我的电脑-属性-高级设置下载maven依赖:clean之后install命令行快捷键:复制:CTRL+Insert粘贴:SHIFT+Insert查看电脑物理MAC地址:cmd中输入ipconfig /all怎么在文件夹中打开cmd窗口:可以按住shift然后右键,就可以出现Windows power shell选项。...

Latex中图片编辑以及图片格式转换_使用pdf/jpg/png图像进行pdflatex编译_faithfulzl的博客-程序员秘密

Latex是使用起来非常清爽的论文格式,但是Latex论文的图片插入总是让刚学的人十分头疼。在此我对图片的插入和图片格式的转换做一个总结。图片编辑插入图片使用到的插入图片的宏包要在前面添加:\usepackage{graphicx}然后在论文中你想要插入图片的地方插入下面的代码:\begin{figure}[htbp] \centering %设置居中 \incl...

推荐文章

热门文章

相关标签