付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IOI2004国家集训队作业:解题报告 安徽 周源Rooks(UVA 10615)解题报告安徽 周源摘要算法构造时间复杂度O(N3)空间复杂度O(N2)题意简述给定一个N * N的棋盘,上面放有一些棋子(都是車)。你需要用最少的颜色去给这些車染色,满足任意同一行或者同一列没有两个或两个以上的車是相同颜色的。分析如果把这个棋盘看作一个二分图,将每一行“抽”出来,看作是二分图一边的N个结点(X集合);同样将每一列也“抽”出来,看作二分图另外一边的N个结点(Y集合)。如果第x行y列的方格中有棋子,对应在二分图上就可以看作是在左边X集合中的结点x和右边Y集合中的结点y之间连一条边。而题目中的问题就是求
2、这个二分图的最小边染色数。不妨来看这样一个定理:定理1在一个二分图中,假设图中两部分的结点个数都为N,且度数最大的结点的度是dmax,则一定有一个匹配,能覆盖所有度为dmax的结点(即所有度最大的点)。并且至少有一个O(N3)的算法能够找到这个匹配。定理1的证明首先使用归纳法进行证明:对图中边的数目进行归纳。当边数为0的时候,显然空匹配就是满足条件的。现在试图在某一个已经确定有满足条件的匹配的图上加一条边,并证明通过调整仍然可以找到满足条件的匹配。假设加入的这条边是(u, v),其中uX且vY,且(u, v)并不与图中已有的边重复。接着,分以下几种情况讨论: d(v)表示v的度,同理可知d(u
3、)表示结点u的度数。在未加入(u, v)的时候,d(u)dmax-1且d(v)dmax-1:那么在加入边(u, v)以后,仍然有d(u) , d(v) dmax或是d(v) dmax。也就是说d(u)或是d(v)会成为新的dmax:则加入(u, v)以后,最大度发生了变化,新的度最大的点仅有一个(或两个):反正都被(u, v)这条边覆盖了。因此在这种情况下,清空匹配,保留(u, v)边作为新的匹配即可。不满足上面两种情况,且在未加入(u, v)的时候,d(u) = dmax 1或d(v) = dmax 1:那么加入边(u, v)以后,u和v中至少有一个会成为度最大的点。此时情况较为复杂,仍分三
4、种情况:如果u和v都不在原先的匹配中,那么将(u, v)边加入匹配就可以了。如果将变为度最大的点都在原先的匹配中,那么不需要对匹配做任何修改。如果某一个将变为度最大的点不在原先的匹配中,而另外一个点却在原先的匹配中:由对称性,我们可以设v在原先的匹配中而u不在,可偏偏在加入(u, v)之前就有d(u) = dmax 1。这个时候,我们的目标就是通过一些调整,让u进入匹配,而不影响其它度最大的点。我们先将(u, v)边加入图中,同时修改d数足,并从u结点出发寻找一条未匹配边与匹配边交替出现的路径:交替路。由于u 不在原先的匹配中,因此从u出发的边都是未匹配边,而从u出发到达的每一个点y1,一般来
5、说如果这个点y1在匹配上,那么沿着他的匹配边逆向找回到X这边来,假设找到了x1点,并再次从x1出发寻找一条未匹配的边到达y2这样一直继续下去:直到遇到以下两种情况的时候停止查找:在找到Y一部分的时候,某个点yi不在匹配上,那么此时我们找到的交替路则是: “”表示匹配边,“-”表示为匹配边u-y1x1-y2x2-xi-1-yi这个时候将这个交替路上的匹配边和未匹配边交换,得到:uy1-x1y2-x2-xi-1yi可以看出,此时除了u加入匹配,其他点都仍在匹配中,因此这个调整是合法的。在找到X一部分的时候,某个点xi的度d(xi)不等于dmax(也就是小于)。此时我们找到的交替路是:u-y1x1-
6、y2x2-xi-1-yixi同样将这个交替路上的匹配边和为匹配边互换,得到:uy1-x1y2-x2-xi-1yi-xi可以看出,此时u进入了匹配,而xi退出了匹配。u进入匹配是众望所归,而xi并不是度最大的点,其退出匹配也是合情合理。所以在这种情况下,我们的调整也是正确的。那么是不是所有情况下,寻找交替路都会如此顺利的碰到这两种情况而停下来,是不是有可能永远无法遇到这两种情况而导致死循环呢?假设永远都无法碰到这两种情况,也就是从u开始搜索交替路,遇到所有Y部分的点构成点集,其中的所有的点都在X部分有匹配点,因此搜索算法又扩展到了X部分的一些点,构成点集,而中所有的点的度数都是dmax,且到达“
7、死循环”的时候,中所有点连出的边都在中:这些都是构成“死循环”必备的条件。显然中除了u以外所有的点都在中有一一对应的匹配,中所有的点在中也有匹配,因此可以得到| = | + 1接着中所有点的度数之和d() = | * dmax,而这些“度”代表的边都连向了,所以有:d() d() = | * dmax = (| + 1) * dmax所以集合中所有点的度数的“平均值”至少是“平均值”都大于dmax,那么至少有一个点的度数要比dmax要大,而这显然是不可能的。因此“会出现死循环”的担心是多余的。至此,可能会遇到的情况都在我们的讨论之中了。因此定理1的正确性是毋庸置疑的了。而这个证明本身就是构造型
8、的,这个算法至少要加入O(N2)条边,而每加入一条边,最坏情况下需要查找一条交替路,这一步最坏情况下是O(N)的,因此整个算法的时间复杂度是O(N3)。定理1证明完毕。定理2二分图的边染色数就是这个二分图所有结点的最大度数。并且至少有一个O(N4)的算法找到这个染色方案。定理2的证明假设最大度为dmax,显然至少需要dmax种颜色才能满足度最大点的染色要求。下面只需要构造一种方法得到只需要dmax种颜色的染色方案即可。每次对当前的二分图执行一次定理1中的算法,可以得到一个匹配,为这个匹配上的边单独安排一种颜色,并删除匹配上的边。由于每次匹配都可以让度数最大的点都被覆盖,因此删除匹配后dmax一定会减一,这样一共会减dmax次,每次安排一种颜色,所以一共需要dmax种颜色。根据这个方法,一共需要执行dmax = O(N)次定理1中的算法,每次执行需要O(N3)的时间,因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年驻马店市税务系统事业单位人员招聘考试备考试题及答案详解
- 2026年邯郸市复兴区卫生健康系统人员招聘笔试备考试题及答案解析
- 2026浙江湖州雷博人力资源服务有限公司招聘1人考试备考题库及答案解析
- 2026年农作物植保员职业技能竞赛综合检测提分附参考答案详解(能力提升)
- 2026年审计法相关知识竞赛测试卷附完整答案详解(名师系列)
- 2026年中级经济师之中级经济师金融专业押题宝典考试题库【学生专用】附答案详解
- 2026年医师定期考核临床考试题库及完整答案详解(夺冠)
- 2026年燃气输配场站工练习题库包带答案详解(突破训练)
- 2026年注册土木工程师(水利水电)之专业基础知识综合提升练习题带答案详解(预热题)
- 2026年钻石知识考核能力提升试题(重点)附答案详解
- 2026年安徽合肥市高三二模语文试题答案讲解课件
- 2026北京市朝阳区卫生健康委员会所属事业单位第一批招聘469人笔试参考题库及答案解析
- 2026中国智能投顾行业发展策略与风险控制研究报告
- 2026重庆中医药学院第一批招聘非在编人员10人笔试备考题库及答案解析
- 2026新疆喀什地区才聚喀什智惠丝路春季招才引智226人笔试模拟试题及答案解析
- 2026年北京市海淀区初三一模化学试卷(含答案)
- 2026年上海市嘉定区高三下学期二模化学试卷和答案
- GA/T 2342-2025车辆管理所场地设置规范
- 多组学数据的整合与分析
- 广东省通用安装工程综合定额(2018)Excel版
- 小班科学小红车嘟嘟修车记
评论
0/150
提交评论