﻿<?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++博客-解题报告-随笔分类-uva</title><link>http://www.cppblog.com/gongzhitaao/category/20550.html</link><description>&lt;a href="http://poj.org"&gt;POJ&lt;/a&gt;, &lt;a href="http://uva.onlinejudge.org"&gt;UVa&lt;/a&gt;,&lt;a href="https://vijos.org/"&gt;Vijos&lt;/a&gt;&lt;br/&gt;
Code: &lt;a href="https://github.com/gongzhitaao/AC-Report"&gt;Github&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Tue, 18 Jun 2013 14:08:33 GMT</lastBuildDate><pubDate>Tue, 18 Jun 2013 14:08:33 GMT</pubDate><ttl>60</ttl><item><title>UVa 129 Krypton Factor</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/201119.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Tue, 18 Jun 2013 04:50:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/201119.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201119.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/201119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201119.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201119.html</trackback:ping><description><![CDATA[<h2>总结</h2>
深度优先搜索的思想。
<h2>分析</h2>
按给定的规则一个一个生成字符串，生成到第 $n$ 个的时候停止然后输出。这个很容易将递归改为循环实现。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-18 12:50 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/18/201119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 128 Software CRC</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-128.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Mon, 17 Jun 2013 22:33:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-128.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201107.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201107.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201107.html</trackback:ping><description><![CDATA[<h2>总结</h2>
大数的余数问题。
<h2>分析</h2>
除数为大数的求法：
<pre><code class="c++">int mod = 0;
char ch;
while (c = getchar())
    mod = (mod*10 + ch-'0') % b
</code></pre>
其中 <code>b</code> 为被除数。即利用余数的性质从最高位逐个读入。<br/>
而题中 CRC 的求法是一个字节一个字节的算，所以对上面的程序小加修改：
<pre><code>mod = ((mod<<8) + ch-'0') % b</code></pre>
<h2>陷阱</h2>
CRC 校验码是算在除数中的。所以处理完输入文本，要重复2次上面的操作，以空出 CRC 校验码的位置。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-18 06:33 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 127 "Accordian" Patience</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-127.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Mon, 17 Jun 2013 22:21:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-127.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201106.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201106.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201106.html</trackback:ping><description><![CDATA[<h2>总结</h2>
简单的模拟问题，按规则判断即可。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-18 06:21 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/18/uva-127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 126 The Errant Physicist</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/17/uva-126.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Mon, 17 Jun 2013 05:07:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/17/uva-126.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201075.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/17/uva-126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201075.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201075.html</trackback:ping><description><![CDATA[<h2>总结</h2>
思路很简单，考虑各种情况即可。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-17 13:07 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/17/uva-126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Uva 125 Numbering Paths</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/16/uva-125.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Sun, 16 Jun 2013 15:18:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/16/uva-125.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201064.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/16/uva-125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201064.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201064.html</trackback:ping><description><![CDATA[<h2>总结</h2>
<a href="https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm">Floyd-Warshall</a>算法。
<h2>分析</h2>
如果有环，那么对于 Floyd-Warshall 的三重循环，$\exists k, count[i][j] > 0\ if\ (i = j)$。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-16 23:18 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/16/uva-125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 124 Following Orders</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-124.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Sat, 15 Jun 2013 02:30:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-124.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201023.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-124.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201023.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201023.html</trackback:ping><description><![CDATA[<h2>总结</h2>
搜索问题，按深度优先的思路可以顺利通过。
<h2>分析</h2>
要求按字母序输出所有可能的解。思路如下：
<ol>
<li>假设最后的输出保存在 $order[0\dots n]$ 的数组中，第 $n$ 层迭代确定数组的第 $n$ 个元素，全部确定之后就输出，然后回溯。
<li>进入第 $k$ 层迭代，假设当前元素为 $S = \{a,b,c,d,e\}$，当前规则为 $R = \{a&lt;b, c&lt;d\}$。有两个步骤：
<ol>
<li>选择第 $k$ 个元素。除当前出现在规则右边的元素之外，依字母选择。可选的元素是 $S^\prime = \{a,c\}$。</li>
<li>依次从 $S^\prime$ 中选取元素，例如 $a$，从 $S$ 中去掉已经选择的元素，然后去掉 $a$ 对应的规则，即 $R=\{c&lt;d\}$，然后进行下一层迭代</li>
</ol>
</ol><img src ="http://www.cppblog.com/gongzhitaao/aggbug/201023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-15 10:30 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 123 Searching Quickly</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-123.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Fri, 14 Jun 2013 21:10:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-123.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/201019.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/201019.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/201019.html</trackback:ping><description><![CDATA[<h2>总结</h2>
简单的文本处理。
<h2>分析</h2>
利用 <code>std::map</code>、<code>std::set</code> 和 <code>std::vector</code> 等结构实现比较方便。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/201019.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-15 05:10 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/15/uva-123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 122 Trees on the level</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-122.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Fri, 14 Jun 2013 00:44:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-122.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200999.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200999.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200999.html</trackback:ping><description><![CDATA[<h2>总结</h2>
简单的广度优先搜索。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/200999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-14 08:44 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 121 Pipe Fitters</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-121.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Thu, 13 Jun 2013 20:17:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-121.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200998.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200998.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200998.html</trackback:ping><description><![CDATA[<h2>总结</h2>
简单的几何问题。
<h2>陷阱</h2>
浮点数精度可能会导致WA。换一个不同的实现方法就可以AC。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/200998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-14 04:17 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/14/uva-121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 120 Stacks of Flapjacks</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-120.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Thu, 13 Jun 2013 03:37:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-120.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200980.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200980.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200980.html</trackback:ping><description><![CDATA[<h2>总结</h2>
只利用给定的方法，$flip$，对数组排序。
<h2>分析</h2>
排序方式有很多。因为原题并没有要求最优解，所以有一个简单的思路：假设有一个长度为 $n$ 的栈：
<ol>
<li>找到栈中最大元素的位置，$k$</li>
<li>$flip(k)$，这样最大的元素就在栈顶了</li>
<li>$flip(1)$，这样最大的元素就在栈底了</li>
<li>对长度为 $n-1$ 的栈重复上面的步骤</li>
</ol>
基本的想法就是每次都把当前最大的元素放到栈底，循环 $n-1$ 次之后就排序完成了。
<h2>陷阱</h2>
$flip(k)$ 中 $k$ 是从栈底算的，栈底元素位置为 $1$，栈顶的位置为 $n$。<img src ="http://www.cppblog.com/gongzhitaao/aggbug/200980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-13 11:37 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 117 The Postal Worker Rings Once</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/200977.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Thu, 13 Jun 2013 01:26:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/200977.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200977.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/200977.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200977.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200977.html</trackback:ping><description><![CDATA[<h2>总结</h2>
图论问题，经过简单的分析，其实是一个单源最短路径问题。
<h2>分析</h2>
<blockquote>There will be at most two intersections with odd degree</blockquote>
说明存在欧拉通路（<a href="http://en.wikipedia.org/wiki/Eulerian_path">Eulerian path</a>）。有两种情况：
<ol>
<li><h3>所有交点的度（<a href="http://en.wikipedia.org/wiki/Degree_(graph_theory)">Degree</a>）都为偶数。</h3>
那么就存在欧拉回路（<a href="http://en.wikipedia.org/wiki/Eulerian_path">Eulerian circuit</a>）。最短路程就是所有边长之和。
</li>
<li><h3>有且只有两个交点有奇数度（<a href="http://en.wikipedia.org/wiki/Degree_(graph_theory)">Degree</a>）</h3>
那么这两个交点就是欧拉通路的起点和终点。接下来只要找到这两点之间的最短路径，最终最短路程就是所有边长之和加上这两点的最短路径长度。
</li>
</ol><img src ="http://www.cppblog.com/gongzhitaao/aggbug/200977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-13 09:26 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/13/200977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 119 Greedy Gift Givers</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-119.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Thu, 13 Jun 2013 00:23:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-119.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200976.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-119.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200976.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200976.html</trackback:ping><description><![CDATA[<h2>总结</h2>
简单的模拟问题
<h2>陷阱</h2>
<ol>
<li>“Any money not given is kept and is part of a person's ``net worth'' printed in the output.”  无论如何理解，最后输出的净收入/净支出就是得到的钱减去花出的钱。剩下的不算。</li>
<li>“The output for each group should be separated from other groups by a blank line” 如果你在每组答案末尾输出空行，那么你的输出末尾会多一个空行，这样你会得到一个WA，而不是PE。解决方法可以在除第一组答案之外的所有答案之前输出一个空行。比如使用一个计数器。
<pre><code class="c++">
if (counter > 1) cout << endl;
</code></pre>
</li>
</ol><img src ="http://www.cppblog.com/gongzhitaao/aggbug/200976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-13 08:23 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVa 118 Mutant Flatworld Explorers</title><link>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-118.html</link><dc:creator>happyac</dc:creator><author>happyac</author><pubDate>Wed, 12 Jun 2013 20:29:00 GMT</pubDate><guid>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-118.html</guid><wfw:comment>http://www.cppblog.com/gongzhitaao/comments/200975.html</wfw:comment><comments>http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-118.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/gongzhitaao/comments/commentRss/200975.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/gongzhitaao/services/trackbacks/200975.html</trackback:ping><description><![CDATA[<h2>总结</h2>
非常简单的模拟 (Simulation) 问题。
<img src ="http://www.cppblog.com/gongzhitaao/aggbug/200975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/gongzhitaao/" target="_blank">happyac</a> 2013-06-13 04:29 <a href="http://www.cppblog.com/gongzhitaao/archive/2013/06/13/uva-118.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>