图论算法总结及图论建模.ppt

  1. 1、本文档共121页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最小生成树可能不止一棵,为什么第k长边长度一定相同?因为有以下结论: 一个图的两棵最小生成树,边的权值序列排序后结果相同 证明:假设某个最小生成树T1的边权从小到大排序后的序列为:a1, a2 …. an 某个最小生成树T2的边权从小到大排序后的序列为:b1,b2…bn 两者若不同,则必然存在一个最小的i,使得ai bi 假设T2中有m条边的权为bi,那么,T1中最多只有m-1条边的权和bi相同。 Arctic Network POJ2349 但是对于T2中任何一条不在T1中的权为bi的边,如果将其从T2去掉,则T2被分成A,B两个部分。那么在T1中连接A,B这两个部分的边,必然权值是等于bi的,否则经过替换,要么T1的权值可以变得更小,要么T2的权值可以变得更小,这和T1,T2是最小生成树矛盾。对T2中每个权值为bi的边,都可以在T1中找到一个权值相同且不在T2的边与其对应,而这些边由于是连接不同部分的,所以不可能相同,因此,在T1中也应该有m条权值为bi的边,这和T1中最多m-1条权值为bi的边矛盾。因此,不存在i,使得的aibi,即两个边权序列应该相同。 Arctic Network POJ2349 你现在有一个集合,一开始集合为空,每次你会得到一对个质数,然后如果集合中存在若干个数对,将这些数对和你得到的数对中所有的数乘起来是完全平方数,那么,就将这个数扔掉,否则就将这个数加入集合。最后输出扔掉的数的个数。(由于素数本身是什么并不重要,题中就只给出了素数的编号,编号相同的素数即为同一个素数) Square dance(SPOJ131) Square dance(SPOJ131) Sample Input: 6 7 1 2 3 5 2 4 1 4 3 5 1 6 4 6 Sample output: 3 素数对数=100000 素数的编号=100000 考虑怎样的一些数对才能够构成完全平方数,应该是每个数都出现了偶数次。 如果把所有的数抽象成点呢?把数对抽象成边呢?那会构成一个什么呢? 生成树! Square dance(SPOJ131) (1,2) (3,2) (3,1) 1 3 2 实际上题目冗长的描述仅仅是讲了一棵生成树的生长过程。每次添加进来一个数对,实际上就是添一条边,然后如果这条边会与已有的边构成一条回路,则要扔掉这条边,否则就加入这条边,这与Kruskal算法惊人地相似! 因此,我们只需要模拟一下Kruskal算法的实现流程,就能轻松地解决这一问题了。 一个巧妙的变形,往往是解决问题的关键所在! Square dance(SPOJ131) A国有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。 输入文件第一行有两个用一个空格隔开的整数n,m,表示A国有n座城市和m条道路。 NOIP2013Day1T3货车运输 接下来m行每行3个整数x、y、z,每两个整数之间用一个空格隔开,表示从x号城市到y号城市有一条限重为z的道路。 注意:x不等于y,两座城市之间可能有多条道路。 接下来一行有一个整数q,表示有q辆货车需要运货。 接下来q行,每行两个整数x、y,之间用一个空格隔开,表示一辆货车需要从x城市运输货物到y城市,注意:x不等于y。 NOIP2013Day1T3货车运输 输出共有q行,每行一个整数,表示对于每一辆货车,它的最大载重是多少。如果货车不能到达目的地,输出-1。 Sample Input Sample Output NOIP2013Day1T3货车运输 4 3 1 2 4 2 3 3 3 1 1 3 1 3 1 4 1 3 3 -1 3 大致思路: 对于每个连通块,只保留这个连通块的最大生成树上的边 然后对于每个询问,如果x,y联通,则输出x到y所经过的最大生成树上的边的最小值,否则输出-1 对于如何求出这个最小值这需要用到倍增算法,有兴趣的同学可以课后自己去学习 NOIP2013Day1T3货车运输 THANK YOU FOR LISTENING 约束图: 结点是变量, 一个约束对应一条弧, 若有弧(u, v), 则得到xu后, 有xv =

文档评论(0)

lxm + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档