﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-算法的奴隶</title><link>http://www.cppblog.com/AllKillMan/</link><description>宁相依，也不见，也不离 ！</description><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 13:25:26 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 13:25:26 GMT</pubDate><ttl>60</ttl><item><title>页码计数</title><link>http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Thu, 18 Aug 2011 11:26:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/153798.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/153798.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/153798.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 【问题描述】<br><br>    一本书的页数为N，页码从1开始编起，请你求出全部页码中，用了多少个0，1，2，…，9。其中—个页码不含多余的0，如N＝1234时第5页不是0005，只是5。<br><br>【输入】<br><br>       一个正整数N(N≤109)，表示总的页码。<br><br>【输出】<br><br>       共十行：第k行为数字k-1的个数。<br><br>【样例】<br><br>       count.in                        count.out<br><br>       11                                1<br><br>                                          4<br><br>                                          1<br><br>                                          1<br><br>         &nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/153798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-08-18 19:26 <a href="http://www.cppblog.com/AllKillMan/archive/2011/08/18/153798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1217 Arbitrage</title><link>http://www.cppblog.com/AllKillMan/archive/2011/08/17/153633.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Wed, 17 Aug 2011 01:55:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/08/17/153633.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/153633.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/08/17/153633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/153633.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/153633.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1217 Arbitrage<br>题意是说给你N种货币以及，货币与货币之间的M种汇率，<br>让你判断是否存在经过若干次货币的兑换使得某种货币的<br>价值大于原来本身的价值，比如所：美元：美元 = 1 ： 1；<br>题意就是让你判断，在当前的货币兑换率的基础上，能不能<br>使 美元 ： 美元 > 1 : 1; 利用Floyd算法即可搞定，代码如下：&nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/08/17/153633.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/153633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-08-17 09:55 <a href="http://www.cppblog.com/AllKillMan/archive/2011/08/17/153633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1029 Ignatius and the Princess IV</title><link>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153573.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Tue, 16 Aug 2011 09:10:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153573.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/153573.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/153573.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/153573.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1029 Ignatius and the Princess IV<br>给N个数字， N为奇数， 输出出现次数大于 N / 2 的数&nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/08/16/153573.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/153573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-08-16 17:10 <a href="http://www.cppblog.com/AllKillMan/archive/2011/08/16/153573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1280 前m大的数</title><link>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153571.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Tue, 16 Aug 2011 08:40:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153571.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/153571.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/08/16/153571.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/153571.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/153571.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1280 前m大的数<br>给定的N个整数序列， 两两求和，从大到小输出M个和数。<br>因为所有整数不超过5000，则相加不会超过10000，可以<br>用哈希解决。&nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/08/16/153571.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/153571.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-08-16 16:40 <a href="http://www.cppblog.com/AllKillMan/archive/2011/08/16/153571.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1116 Play on Words</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151287.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 02:57:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151287.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151287.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151287.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151287.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151287.html</trackback:ping><description><![CDATA[<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1116">HDU 1116 Play on Words</a><br />这个题目要运用到欧拉路得相关知识，并且也要并查集，题目说的是：给你n个单词，要你判断这些单词能不能首尾相连。<br />理解题目意思后，进行转化，输入字符串，提取首位字母作为下标来表示两节点的出现，以及相对应节点入度和出度的增加，<br />转化为并查集的应用即可。那么从可以想象一幅由首位字母节点构成的图，当且仅当图是一条欧拉回路或者欧拉通路的时候，<br />才能满足题目的要求，至于欧拉回路和欧拉通路的判定可以总结为如下：<br />1）所有的点联通<br />2）欧拉回路中所有点的入度和出度一样。<br />3）欧拉通路中起点的入度 - 出度 = 1，终点的 初度 - 入度 = 1， 其他的所有点入度 = 出度；<br /><br />有了上面这些知识点做铺垫，相信理解起来就比较容易了，下面我的代码： 
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdio.h</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">string</span><span style="color: #000000">.h</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">math.h</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;N&nbsp;30&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">/*</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #008000">欧拉回路，所有点连通，并且所有点的入度等于出度。&nbsp;<br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #008000">欧拉通路。从原点&nbsp;S出发，经过所有点，从终点&nbsp;t出去。&nbsp;<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #008000">所有点除起点终点外的度都是偶数，且出度等于入度<br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #008000">起点的出度比入度大&nbsp;1&nbsp;<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #008000">终点的入度比出度大&nbsp;1&nbsp;<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #008000"></span><span style="color: #008000">*/</span><span style="color: #000000">&nbsp;<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;father[N],vis[N];&nbsp;&nbsp;<br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">father[i]&nbsp;表示节点&nbsp;i&nbsp;的&nbsp;BOSS&nbsp;！&nbsp;vis[i]表示节点&nbsp;i&nbsp;出现过！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;findx(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x)&nbsp;&nbsp;<br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">{&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">找节点&nbsp;&nbsp;x&nbsp;的&nbsp;BOSS&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(father[x]</span><span style="color: #000000">!=</span><span style="color: #000000">x)&nbsp;&nbsp;<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[x]</span><span style="color: #000000">=</span><span style="color: #000000">findx(father[x]);&nbsp;&nbsp;<br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;father[x];&nbsp;&nbsp;<br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;<br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;merge(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;b)&nbsp;&nbsp;<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">{&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;合并&nbsp;节点&nbsp;a&nbsp;和节点&nbsp;b&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x,y;&nbsp;&nbsp;<br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000">=</span><span style="color: #000000">findx(a);&nbsp;&nbsp;<br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000">=</span><span style="color: #000000">findx(b);&nbsp;&nbsp;<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(x</span><span style="color: #000000">!=</span><span style="color: #000000">y)&nbsp;father[x]</span><span style="color: #000000">=</span><span style="color: #000000">y;&nbsp;&nbsp;<br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;<br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()&nbsp;&nbsp;<br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">{&nbsp;&nbsp;<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;text,cnt,i,j,n,</span><span style="color: #0000ff">out</span><span style="color: #000000">[N],</span><span style="color: #0000ff">in</span><span style="color: #000000">[N],p[</span><span style="color: #000000">30</span><span style="color: #000000">],a,b;&nbsp;&nbsp;<br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;str[</span><span style="color: #000000">1001</span><span style="color: #000000">];&nbsp;&nbsp;<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">text);&nbsp;&nbsp;<br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(text</span><span style="color: #000000">--</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">n);&nbsp;&nbsp;<br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(</span><span style="color: #0000ff">out</span><span style="color: #000000">,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(</span><span style="color: #0000ff">out</span><span style="color: #000000">));&nbsp;&nbsp;<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(</span><span style="color: #0000ff">in</span><span style="color: #000000">,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(</span><span style="color: #0000ff">in</span><span style="color: #000000">));&nbsp;&nbsp;<br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(vis,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(vis));&nbsp;&nbsp;<br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">26</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[i]</span><span style="color: #000000">=</span><span style="color: #000000">i;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">初始化数组&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(n</span><span style="color: #000000">--</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;处理所给信息&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">43</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%s</span><span style="color: #000000">"</span><span style="color: #000000">,str);&nbsp;&nbsp;<br /></span><span style="color: #008080">44</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a</span><span style="color: #000000">=</span><span style="color: #000000">str[</span><span style="color: #000000">0</span><span style="color: #000000">]</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">a</span><span style="color: #000000">'</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">45</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b</span><span style="color: #000000">=</span><span style="color: #000000">str[strlen(str)</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">]</span><span style="color: #000000">-</span><span style="color: #000000">'</span><span style="color: #000000">a</span><span style="color: #000000">'</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">46</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;merge(a,b);&nbsp;&nbsp;<br /></span><span style="color: #008080">47</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">out</span><span style="color: #000000">[a]</span><span style="color: #000000">++</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">48</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">[b]</span><span style="color: #000000">++</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;记录节点&nbsp;a&nbsp;和&nbsp;b的入度和出度&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">49</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vis[a]</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">50</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vis[b]</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">标记节点&nbsp;a&nbsp;和&nbsp;b的出现&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">51</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080">52</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">26</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">53</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[i]</span><span style="color: #000000">=</span><span style="color: #000000">findx(i);&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">找出每个节点的&nbsp;BOSS&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">54</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(cnt</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">,i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">26</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">55</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(vis[i]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;father[i]</span><span style="color: #000000">==</span><span style="color: #000000">i)&nbsp;&nbsp;<br /></span><span style="color: #008080">56</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt</span><span style="color: #000000">++</span><span style="color: #000000">;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;统计最终&nbsp;BOSS&nbsp;即根节点的个数&nbsp;。&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">57</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(cnt</span><span style="color: #000000">&gt;</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">图不连通&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">58</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br /></span><span style="color: #008080">59</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;door&nbsp;cannot&nbsp;be&nbsp;opened.\n</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br /></span><span style="color: #008080">60</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">continue</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">61</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080">62</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">63</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(j</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">,i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">26</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;<br /></span><span style="color: #008080">64</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(vis[i]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">out</span><span style="color: #000000">[i]</span><span style="color: #000000">!=</span><span style="color: #0000ff">in</span><span style="color: #000000">[i])&nbsp;&nbsp;<br /></span><span style="color: #008080">65</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p[j</span><span style="color: #000000">++</span><span style="color: #000000">]</span><span style="color: #000000">=</span><span style="color: #000000">i;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">统计入度和出度不相等的点的信息&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">66</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(j</span><span style="color: #000000">==</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">67</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span><span style="color: #008000">//</span><span style="color: #008000">欧拉回路，即环&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">68</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">Ordering&nbsp;is&nbsp;possible.\n</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br /></span><span style="color: #008080">69</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">continue</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">70</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080">71</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(j</span><span style="color: #000000">==</span><span style="color: #000000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(&nbsp;</span><span style="color: #0000ff">out</span><span style="color: #000000">[p[</span><span style="color: #000000">0</span><span style="color: #000000">]]</span><span style="color: #000000">-</span><span style="color: #0000ff">in</span><span style="color: #000000">[p[</span><span style="color: #000000">0</span><span style="color: #000000">]]</span><span style="color: #000000">==</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">[p[</span><span style="color: #000000">1</span><span style="color: #000000">]]</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">[p[</span><span style="color: #000000">1</span><span style="color: #000000">]]</span><span style="color: #000000">==</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;&nbsp;<br /></span><span style="color: #008080">72</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">out</span><span style="color: #000000">[p[</span><span style="color: #000000">1</span><span style="color: #000000">]]</span><span style="color: #000000">-</span><span style="color: #0000ff">in</span><span style="color: #000000">[p[</span><span style="color: #000000">1</span><span style="color: #000000">]]</span><span style="color: #000000">==</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">[p[</span><span style="color: #000000">0</span><span style="color: #000000">]]</span><span style="color: #000000">-</span><span style="color: #0000ff">out</span><span style="color: #000000">[p[</span><span style="color: #000000">0</span><span style="color: #000000">]]</span><span style="color: #000000">==</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;)&nbsp;)&nbsp;&nbsp;<br /></span><span style="color: #008080">73</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span><span style="color: #008000">//</span><span style="color: #008000">欧拉通路&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">74</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">Ordering&nbsp;is&nbsp;possible.\n</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br /></span><span style="color: #008080">75</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">continue</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">76</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080">77</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">The&nbsp;door&nbsp;cannot&nbsp;be&nbsp;opened.\n</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;<br /></span><span style="color: #008080">78</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /></span><span style="color: #008080">79</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;&nbsp;<br /></span><span style="color: #008080">80</span>&nbsp;<span style="color: #000000">}&nbsp;&nbsp;<br /></span><span style="color: #008080">81</span>&nbsp;<span style="color: #000000"></span></div><br /><br /><br /><br /><img src ="http://www.cppblog.com/AllKillMan/aggbug/151287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 10:57 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1301 Jungle Roads</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151276.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 01:31:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151276.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151276.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151276.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151276.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151276.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1301 Jungle Roads<br>这个题目的意思就是说给你n个相关点，用A - I 来表示，然后给出n-1行，第 i 行表示从点 i 到其他点的相关信息。<br>在给出的map的基础上，要求选择适当的路线，使得所有给出的点都能够到达任意其他点，问题规模不大，直接矩阵<br>存储，利用prim 算法搞定。&nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/07/18/151276.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/151276.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 09:31 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151276.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1233 还是畅通工程</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151273.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 01:20:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151273.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151273.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151273.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151273.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1233 还是畅通工程<br>题目意思就是给你一个有n个点的图，给出n *（n-1）/ 2 条边的信息，包括边的端点和边的长度，要求<br>在满足所有点在同一个连通分支上的前提下，选择最短的道路来修建。典型的最小生成树算法，同样，问题<br>规模不大，直接矩阵就可以胜任。&nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/07/18/151273.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/151273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 09:20 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1232 畅通工程</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151271.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 00:59:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151271.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151271.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151271.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151271.html</trackback:ping><description><![CDATA[<a title="HDU 1232 畅通工程" href="http://acm.hdu.edu.cn/showproblem.php?pid=1232">HDU 1232 畅通工程</a><br />这个题目也是典型的最小生成树算法的利用，不同于其他的题目就在于其它要求的是要添加的边的最少数目，使得任意两<br />点都有联系，利用<a title="并查集算法" href="http://hi.baidu.com/allkillman/blog/item/ad43270941c7e5147aec2ca1.html">并查集算法</a>&nbsp;，在题目已经给出的map基础上，统计两棵树相并的次数，即使要添加的路径的最少数目。<br /><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdio.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdlib.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;father[</span><span style="color: #000000">1001</span><span style="color: #000000">],&nbsp;tot;</span><span style="color: #008000">//</span><span style="color: #008000">father[i]&nbsp;记录&nbsp;i&nbsp;的&nbsp;BOSS&nbsp;！&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #008000"></span><span style="color: #008000">//</span><span style="color: #008000">tot&nbsp;统计最初至少需要添加的路径数目&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;find(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x)<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">找&nbsp;到&nbsp;&nbsp;x&nbsp;的&nbsp;BOSS&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;r&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;x;<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(r&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;father[r])&nbsp;r&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;father[r];<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;r;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">}<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;join(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;b)<br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">将&nbsp;a&nbsp;和&nbsp;&nbsp;b&nbsp;的&nbsp;BOSS&nbsp;统一！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;fa&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;find(a),&nbsp;fb&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;find(b);<br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(fa&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;fb)<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[fa]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fb;<br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tot&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;统一了一次两个阵营的&nbsp;&nbsp;BOSS&nbsp;，所以需要添加的路径的数目减一！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n,&nbsp;m,&nbsp;x,&nbsp;y;<br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">n),&nbsp;n)<br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">m);<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tot&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;n</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;初始化&nbsp;tot&nbsp;等于&nbsp;n&nbsp;个点联通所需要的最少边的数目&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[n</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">n;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)father[i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i;</span><span style="color: #008000">//</span><span style="color: #008000">初始化自己是自己的&nbsp;BOSS&nbsp;！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">m;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d&nbsp;%d</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">x,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">y);<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;join(x,&nbsp;y);&nbsp;&nbsp;<br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%d\n</span><span style="color: #000000">"</span><span style="color: #000000">,tot);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输出在已有基础上还需要的边的数目！&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">43</span>&nbsp;<span style="color: #000000"></span></div><br /><img src ="http://www.cppblog.com/AllKillMan/aggbug/151271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 08:59 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1162 Eddy's picture</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151269.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 00:42:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151269.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151269.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151269.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151269.html</trackback:ping><description><![CDATA[<div><a title="HDU 1162 Eddy's picture" href="http://acm.hdu.edu.cn/showproblem.php?pid=1162">HDU 1162 Eddy's picture</a><br /><br />这个题目也是典型的最小生成树算法，跟<a title="之前的那个题目" href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html">之前的那个题目</a>是差不多的，也就是说：给你n个二维平面点，<br />让你添加适当的边，使得所有的点都在同一个联通分支上，也就是说任何点之间都有路径可以到达。<br />问题规模不大，直接用矩阵存数据，利用<a title="prim 算法" href="http://baike.baidu.com/view/671819.htm">prim 算法</a>就可以搞定。此时任意两点之间的&#8220;权值&#8221;就是<br />两点之间的距离。
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdio.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">stdlib.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">math.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">#include</span><span style="color: #000000">&lt;</span><span style="color: #0000ff">string</span><span style="color: #000000">.h</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;MAX&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1000000000.0</span><span style="color: #000000">;&nbsp;<br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">struct</span><span style="color: #000000">&nbsp;Point<br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;x,&nbsp;y;<br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">}point[</span><span style="color: #000000">101</span><span style="color: #000000">];<br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;map[</span><span style="color: #000000">101</span><span style="color: #000000">][</span><span style="color: #000000">101</span><span style="color: #000000">];<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;v[</span><span style="color: #000000">101</span><span style="color: #000000">],&nbsp;n;<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;Dis(Point&nbsp;a,&nbsp;Point&nbsp;b)<br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sqrt((a.x&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;b.x)&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;(a.x&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;b.x)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">(a.y&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;b.y)&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;(a.y&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;b.y));&nbsp;<br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">}&nbsp;<br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Build()<br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(map,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(map));<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">i;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(i&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;j)&nbsp;map[i][j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MAX;<br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;<br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[j][i]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;map[i][j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Dis(point[i],&nbsp;point[j]);<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;MinTree()<br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;sum&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0.0</span><span style="color: #000000">,&nbsp;min;<br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(v,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(v));<br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;flag;<br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">43</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MAX;<br /></span><span style="color: #008080">44</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">45</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">46</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">v[j]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;map[</span><span style="color: #000000">0</span><span style="color: #000000">][j]&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;min)<br /></span><span style="color: #008080">47</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">48</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;map[</span><span style="color: #000000">0</span><span style="color: #000000">][j];<br /></span><span style="color: #008080">49</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;j;<br /></span><span style="color: #008080">50</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">51</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">52</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;min;<br /></span><span style="color: #008080">53</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v[flag]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br /></span><span style="color: #008080">54</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;j</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;j</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">55</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">56</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">v[j]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;map[</span><span style="color: #000000">0</span><span style="color: #000000">][j]&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;map[flag][j])<br /></span><span style="color: #008080">57</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">58</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[</span><span style="color: #000000">0</span><span style="color: #000000">][j]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;map[flag][j];<br /></span><span style="color: #008080">59</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">60</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">61</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">62</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%.2lf\n</span><span style="color: #000000">"</span><span style="color: #000000">,sum);<br /></span><span style="color: #008080">63</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">64</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br /></span><span style="color: #008080">65</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">66</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%d</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">n)</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;EOF)<br /></span><span style="color: #008080">67</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">68</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[n][n];<br /></span><span style="color: #008080">69</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point[n];<br /></span><span style="color: #008080">70</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">n;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /></span><span style="color: #008080">71</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">72</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%lf&nbsp;%lf</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">point[i].x,&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">point[i].y);<br /></span><span style="color: #008080">73</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">74</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build();<br /></span><span style="color: #008080">75</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MinTree();<br /></span><span style="color: #008080">76</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">77</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /></span><span style="color: #008080">78</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">79</span>&nbsp;<span style="color: #000000"></span></div><br /><br /></div><img src ="http://www.cppblog.com/AllKillMan/aggbug/151269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 08:42 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDU 1102 Constructing Roads</title><link>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html</link><dc:creator>AK</dc:creator><author>AK</author><pubDate>Mon, 18 Jul 2011 00:34:00 GMT</pubDate><guid>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html</guid><wfw:comment>http://www.cppblog.com/AllKillMan/comments/151268.html</wfw:comment><comments>http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/AllKillMan/comments/commentRss/151268.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/AllKillMan/services/trackbacks/151268.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HDU 1102 Constructing Roads<br><br>这个题目的意思就是说，给你一个有n个村庄的地图，map[i][j]表示从村庄 i 到村庄 j 的距离，然后给你<br>m 条已有道路，让你在这个基础上添加适当的道路，使得所有村庄之间都是联通的，求添加道路的最短距<br>离的值。 &nbsp;&nbsp;<a href='http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html'>阅读全文</a><img src ="http://www.cppblog.com/AllKillMan/aggbug/151268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/AllKillMan/" target="_blank">AK</a> 2011-07-18 08:34 <a href="http://www.cppblog.com/AllKillMan/archive/2011/07/18/151268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>