﻿<?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++博客-f(sixleaves) = sixleaves-随笔分类-algorithm</title><link>http://cppblog.com/sixleaves/category/20814.html</link><description>重剑无锋 大巧不工</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2015 03:44:39 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2015 03:44:39 GMT</pubDate><ttl>60</ttl><item><title>UVA11988 Broken KeyBoard</title><link>http://www.cppblog.com/sixleaves/archive/2015/04/12/210311.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 11 Apr 2015 16:10:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/04/12/210311.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210311.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/04/12/210311.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210311.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210311.html</trackback:ping><description><![CDATA[链表的思想很简单，要做到活用也不难。一般我是这样做得，从实际问题出发，先高度的概括符不符合链表的特点。能不能用链表简单解决。接着，就是编码。<br />链表编码要理清细节性思路，最好是简单的画下图，正如改题的链表，本质上是循环链表。last指向最后一个节点。其next指针一定指向头节点。我们把s[0]当做头节点。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;cstdio&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;cstring&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn&nbsp;=&nbsp;100000&nbsp;+&nbsp;5;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;last,&nbsp;cur,&nbsp;next[maxn];<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;s[maxn];<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;scanf("%s",&nbsp;s&nbsp;+&nbsp;1)&nbsp;==&nbsp;1)&nbsp;{<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n&nbsp;=&nbsp;strlen(s&nbsp;+&nbsp;1);<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;=&nbsp;cur&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next[0]&nbsp;=&nbsp;0;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;头结点初始化指向自身</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;ch&nbsp;=&nbsp;s[i];<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('['&nbsp;==&nbsp;ch&nbsp;)&nbsp;cur&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(']'&nbsp;==&nbsp;ch)&nbsp;cur&nbsp;=&nbsp;last;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;{<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next[i]&nbsp;=&nbsp;next[cur];&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;next[cur]为当前光标的前一个字符，而next[i]就是当前光标要输入的字符，接着，光标还要跳到下个字符。所以我们要把当前字符next指向光标输入的字符。也就是next[cur] = i;但要先保存其next指针给输入字符。其next指针其实就是真相头结点。</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next[cur]&nbsp;=&nbsp;i;<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cur&nbsp;==&nbsp;last)&nbsp;last&nbsp;=&nbsp;i;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur&nbsp;=&nbsp;i;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;指向下一个节点</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;next[0];i&nbsp;!=&nbsp;0;&nbsp;i&nbsp;=&nbsp;next[i])&nbsp;{<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%c",&nbsp;s[i]);<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts("");<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">37</span>&nbsp;}<br /><br />2015/4/12上午12:10:12</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-04-12 00:10 <a href="http://www.cppblog.com/sixleaves/archive/2015/04/12/210311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA442 Matrix Chain Multiplication</title><link>http://www.cppblog.com/sixleaves/archive/2015/04/11/210305.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 10 Apr 2015 18:33:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/04/11/210305.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210305.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/04/11/210305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210305.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210305.html</trackback:ping><description><![CDATA[<div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; 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;#include&nbsp;&lt;cstdio&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;stack&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;Matrix&nbsp;{<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;r,c;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matrix(<span style="color: #0000FF; ">int</span>&nbsp;a&nbsp;=&nbsp;0,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b&nbsp;=&nbsp;0)&nbsp;:&nbsp;r(a),&nbsp;c(b)&nbsp;{};<br /><span style="color: #008080; ">11</span>&nbsp;}m[26];<br /><span style="color: #008080; ">12</span>&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;stack&lt;Matrix&gt;&nbsp;s;<br /><span style="color: #008080; ">14</span>&nbsp;<br /><span style="color: #008080; ">15</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()<br /><span style="color: #008080; ">16</span>&nbsp;{<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;name;<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;name;<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;k&nbsp;=&nbsp;name[0]&nbsp;-&nbsp;'A';<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;m[k].r&nbsp;&gt;&gt;&nbsp;m[k].c;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;expr;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;expr)&nbsp;{<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;expr.size();&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;获取字符串的大小，因为这整个字符串都没有空格</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;error&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>;<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ans&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;{&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;循环整个表达式、思路是遇到右括号就出栈两个Matrix进行计算，算完在压回。<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;其实你可以发现带括号的表达式十分符合栈，而不仅仅是该题目，首先左括号越深<br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;其计算的有先级别越高，而右括号又和左括号配对，如果我们从左到右读取一个表达式<br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;每次一遇到右括号，其前面到左括号的部分肯定就是这个表达式最优先的部分。</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isalpha(expr[i]))&nbsp;{&nbsp;s.push(m[expr[i]&nbsp;-&nbsp;'A']);&nbsp;}<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(')'&nbsp;==&nbsp;expr[i])&nbsp;{<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matrix&nbsp;m2&nbsp;=&nbsp;s.top();&nbsp;s.pop();<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Matrix&nbsp;m1&nbsp;=&nbsp;s.top();&nbsp;s.pop();<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(m1.c&nbsp;!=&nbsp;m2.r)&nbsp;{&nbsp;error&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>;&nbsp;<span style="color: #0000FF; ">break</span>;&nbsp;}<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans&nbsp;+=&nbsp;m1.r&nbsp;*&nbsp;m1.c&nbsp;*&nbsp;m2.c;<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.push(Matrix(m1.r,&nbsp;m2.c));<br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(error)&nbsp;printf("error\n");&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;printf("%d\n",&nbsp;ans);<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">54</span>&nbsp;}<br /><span style="color: #008080; ">55</span>&nbsp;<br /><br />2015/4/10下午6:32:37<br />By sixleaves</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-04-11 02:33 <a href="http://www.cppblog.com/sixleaves/archive/2015/04/11/210305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA514 Rails</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/30/210195.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Mon, 30 Mar 2015 08:17:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/30/210195.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210195.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/30/210195.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210195.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210195.html</trackback:ping><description><![CDATA[<p><strong>&nbsp;<span style="font-size: 12px;">铁轨</span></strong></p><div><span style="font-size: 12px;"><strong>PopPush城市有一座著名的火车站。这个国家到处都是丘陵。而这个火车站是建于上一个世纪。不幸的是，那时的资金有限。所以只能建立起一条路面铁轨。而且，这导致这个火车站在同一个时刻只能一个轨道投入使用，因为它缺少空间，两列火车将无路可走。具体看下图。</strong></span></div><div><span style="font-size: 12px;"><strong><br /></strong></span></div><div><span style="font-size: 12px;"><strong>当地的惯例是每一列火车从A方向驶向B方向时候，会用某种方式将车厢重组。假设火车将要到达A方向，拥有N个车厢(N&lt;=1000),这些车厢按照递增顺序标记为1到N。负责从组车厢的领导,必须知道是否能从组车厢让它驶出B，而这个重组的序列就是a1\a2\a3...aN.帮组他并且写一个程序来判断是否可能按照所要求的车厢顺序。你可以假设，单个的车厢可以从列车上分离出来，在他们进入站台之前。并且他们可以自由移动，知道它们上了B轨道。你也可以假设在任意时候站台可以放下无数的车厢。但是只要一个车厢进入站台，它就不能返回A轨道，同时如果它离开了站台驶向B轨道，它就不能返回站台。</strong></span></div><div><span style="font-size: 12px;"><strong><img src="http://www.cppblog.com/images/cppblog_com/sixleaves/uva514.png" width="569" height="250" alt="" /><br /></strong></span></div><div><span style="font-size: 12px;"><strong>输入：</strong></span></div><div><span style="font-size: 12px;"><strong>这个输入文件由多个行块组成。每一个块描述的是多个要求的重组车厢的序列。在这每个块中的第一行是一个整数N，被用来说明上面每行的车厢个数。这个快的最后一行仅仅是一个数字0要来标记该快的结束</strong></span></div><div><span style="font-size: 12px;"><strong>最后一个块仅仅是一个0独占一行。</strong></span></div><div><span style="font-size: 12px;"><strong><br /></strong></span></div><div><span style="font-size: 12px;"><strong>输出：</strong></span></div><div><span style="font-size: 12px;"><strong>这个输出文件包含多行，这些行和排列车厢的行数一一对应。日过该排列可行，则输出Yes，否则输出No。另外存在一个空行在每个相对应的块后面。输出文件中不存在于最后一个什么数据都没有的响应输出。</strong></span></div><div><span style="font-size: 12px;"><strong><br /></strong></span></div><div><span style="font-size: 12px;"><strong>输出</strong></span></div><div><span style="font-size: 12px;"><strong>5</strong></span></div><div><span style="font-size: 12px;"><strong>1 2 3 4 5</strong></span></div><div><span style="font-size: 12px;"><strong>5 4 1 2 3</strong></span></div><div><span style="font-size: 12px;"><strong>0</strong></span></div><div><span style="font-size: 12px;"><strong>6</strong></span></div><div><span style="font-size: 12px;"><strong>6 5 4 3 2 1</strong></span></div><div><span style="font-size: 12px;"><strong>0</strong></span></div><div><span style="font-size: 12px;"><strong>0</strong></span></div><div><span style="font-size: 12px;"><strong><br /></strong></span></div><div><span style="font-size: 12px;"><strong>Output</strong></span></div><div><span style="font-size: 12px;"><strong>Yes</strong></span></div><div><span style="font-size: 12px;"><strong>No</strong></span></div><div><span style="font-size: 12px;"><strong><br /></strong></span></div><div><span style="font-size: 12px;"><strong>Yes<br /><br /></strong></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; ">由于station符合后进先出规则，所以可以用一个stack&lt;int&gt;来表示station。<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; ">然后采用模拟的规则来写，因为进入station是按照编号递增进入，所以可以用aId变量表示。<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #008000; ">接下来就是模拟时候应该注意的条件，我们知道有以下两种情况，一种是一进来station，就出station<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; ">也就是&nbsp;aId&nbsp;==&nbsp;coaches[lenB];&nbsp;一种是进来时还不出站，那么这时候就要s.push(aId),但是这一种的条件呢？<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #008000; ">我们如果可以排除掉第一种，那么无非就是第二种了。但是我们要知道，在进站之前，如果站台里有车它是可以先出站的<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; ">，这种状态就条件就是&nbsp;!s.empty()&nbsp;&amp;&amp;&nbsp;s.top()&nbsp;==&nbsp;coaches[lenB].所以只要按照顺序判断这几个条件<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; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #008000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #008000; ">总结：<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #008000; ">解决问题的关键点，在于构建问题的模型、大部分都是可以用现有的基础数据结构。构造完对应的数据结构，特别是对于模拟题<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #008000; ">无非就是状态见的转移处理，这是就要在基于模型的基础上、先写出映射到个个状态的唯一条件，然后按照问题逻辑一一先后判断<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; ">即可。<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">16</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">17</span>&nbsp;#include&nbsp;&lt;stack&gt;<br /><span style="color: #008080; ">18</span>&nbsp;<br /><span style="color: #008080; ">19</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">20</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;1024;<br /><span style="color: #008080; ">21</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;coaches[len];<br /><span style="color: #008080; ">22</span>&nbsp;<br /><span style="color: #008080; ">23</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">24</span>&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;n,&nbsp;n)&nbsp;{&nbsp;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;read&nbsp;the&nbsp;required&nbsp;permutaion</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;coaches[0],&nbsp;coaches[0])&nbsp;{<br /><span style="color: #008080; ">31</span>&nbsp;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;coaches[i];<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;lenB&nbsp;=&nbsp;0,&nbsp;aId&nbsp;=&nbsp;1;<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;ok&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>;<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(lenB&nbsp;&lt;&nbsp;n)&nbsp;{<br /><span style="color: #008080; ">38</span>&nbsp;<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(aId&nbsp;==&nbsp;coaches[lenB])&nbsp;{&nbsp;&nbsp;aId++;&nbsp;lenB++;&nbsp;}<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(!s.empty()&nbsp;&amp;&amp;&nbsp;s.top()&nbsp;==&nbsp;coaches[lenB])&nbsp;{&nbsp;s.pop();&nbsp;lenB++;&nbsp;}<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(aId&nbsp;&lt;=&nbsp;n)&nbsp;s.push(aId++);<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;{&nbsp;ok&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>;&nbsp;<span style="color: #0000FF; ">break</span>;&nbsp;}<br /><span style="color: #008080; ">43</span>&nbsp;<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">45</span>&nbsp;<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;(ok&nbsp;?&nbsp;"Yes"&nbsp;:&nbsp;"No")&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">52</span>&nbsp;}</div>2015/3/30下午3:03:52</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210195.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-30 16:17 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/30/210195.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 400 Unix ls by sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/25/210160.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Wed, 25 Mar 2015 06:32:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/25/210160.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210160.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/25/210160.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210160.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210160.html</trackback:ping><description><![CDATA[题目其实很简单，答题意思就是从管道读取一组文件名，并且按照字典序排列，但是输入的时候按列先输出，再输出行。而且每一行最多60个字符。而每个文件名所占的宽度为最大文件名的长度加2，除了输出在最右边的文件名的宽度是最大文件名长度之外。编程实现这个功能，这就是Unix系统下ls命令的一部分而已。具体实现如下。<br />主要学习的技能要点就是如何用偏移位移法来按列输出。如果一个矩阵n行m列，要按照列输出。但是我们知道，编程时候，只能是for(行)在列。所以必须要有一个偏移量来计算这种偏移关系。x = rows * c + r;<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;algorithm&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;vector&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;#include&nbsp;&lt;cmath&gt;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;vector&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;words;<br /><span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;&amp;s,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;extra);<br /><span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;w;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;n)&nbsp;{<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;max&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words.clear();<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;w;<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>::size_type&nbsp;str_size&nbsp;=&nbsp;w.size();<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(str_size&nbsp;&gt;&nbsp;max)&nbsp;max&nbsp;=&nbsp;str_size;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words.push_back(w);<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cols&nbsp;=&nbsp;(60&nbsp;-&nbsp;max)&nbsp;/&nbsp;(max&nbsp;+&nbsp;2)&nbsp;+&nbsp;1;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;rows&nbsp;=&nbsp;ceil(<span style="color: #0000FF; ">double</span>(n)&nbsp;/&nbsp;cols);<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(words.begin(),&nbsp;words.end());<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print("",&nbsp;60,&nbsp;'-');<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;r&nbsp;=&nbsp;0;&nbsp;r&nbsp;&lt;&nbsp;rows;&nbsp;r++)&nbsp;{<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;c&nbsp;=&nbsp;0;&nbsp;c&nbsp;&lt;&nbsp;cols;&nbsp;c++)&nbsp;{<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;idx&nbsp;=&nbsp;c&nbsp;*&nbsp;rows&nbsp;+&nbsp;r;<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(idx&nbsp;&lt;&nbsp;n)&nbsp;print(words[idx],(c&nbsp;==&nbsp;cols&nbsp;-&nbsp;1?&nbsp;max:&nbsp;max&nbsp;+&nbsp;2),&nbsp;'&nbsp;');<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">50</span>&nbsp;}<br /><span style="color: #008080; ">51</span>&nbsp;<br /><span style="color: #008080; ">52</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;&amp;s,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len,&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;extra)&nbsp;{<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;s;<br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>::size_type&nbsp;str_size&nbsp;=&nbsp;s.size();<br /><span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len&nbsp;-&nbsp;str_size;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;extra;<br /><span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">59</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210160.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-25 14:32 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/25/210160.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva156 By sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/24/210152.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 24 Mar 2015 09:13:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/24/210152.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210152.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/24/210152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210152.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210152.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;algorithm&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;map&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;#include&nbsp;&lt;vector&gt;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;map&lt;<span style="color: #0000FF; ">string</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;cnt;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;vector&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;words;<br /><span style="color: #008080; ">10</span>&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;formatWord(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;&amp;s);<br /><span style="color: #008080; ">12</span>&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;s;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>(cin&nbsp;&gt;&gt;&nbsp;s)&nbsp;{<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(s[0]&nbsp;==&nbsp;'#')&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words.push_back(s);<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;fw&nbsp;=&nbsp;formatWord(s);<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!cnt.count(fw))&nbsp;cnt[fw]&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt[fw]++;<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;ans;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;words.size();&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(&nbsp;cnt[formatWord(&nbsp;words[i]&nbsp;)&nbsp;]&nbsp;==&nbsp;1)&nbsp;ans.push_back(words[i]);<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(ans.begin(),&nbsp;ans.end());<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;ans.size();&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;ans[i]&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">37</span>&nbsp;}<br /><span style="color: #008080; ">38</span>&nbsp;<br /><span style="color: #008080; ">39</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;formatWord(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;&amp;s)&nbsp;{<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;ans&nbsp;=&nbsp;s;<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;str_size&nbsp;=&nbsp;ans.size();<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;str_size;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[i]&nbsp;=&nbsp;tolower(ans[i]);<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(ans.begin(),&nbsp;ans.end());<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;ans;<br /><span style="color: #008080; ">50</span>&nbsp;<br /><span style="color: #008080; ">51</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-24 17:13 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/24/210152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva540 Team Queue by sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/24/210144.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 24 Mar 2015 00:31:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/24/210144.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210144.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/24/210144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210144.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210144.html</trackback:ping><description><![CDATA[这道题目、主要是对队列的灵活应用。其实就是一道模拟题目，只要你洞察出题目的本质就十分简单。题目意思大体是有多组测试数据，每组的一开始是一个数字t，代表一共有多少的团队，接着是t行输入，每一行都由一个数字n开头，表示队伍的人数。在这之后，输入诺干行的操作指令，E x代表入编号为x的入队列，这里的队列是一个新的而且只有一个的新队列。D代表就是出队列、同时输出该元素、S表示停止模拟。<br />题目的具体要求是，每次入队里前，先从队列头扫描到队列尾，如果队列里有队友，就排在队友们的最后面(不是该队友的后面，是整队队友的最后面)。如果没有队友则，直接排在队列的最后面。出队列的没什么特别的了。<br /><br />Keys:其实我们可以通过简单的模拟、发现。由第一个队员到最后一个队员入队列，或者中间有其他出队列。该队列始终可以看成是两个队列的队列。又因为题目要求常数的时间、<br />所以我们不可能把时间浪费在某个队员属于哪一个队里，所以可以用映射、也就是map来解决这个问题。map&lt;int, int&gt;这个结构刚好能映射这种关系。接下去就是要有一个q2[maxn]来表示所有初始化的队列。一个q来表示新队列，这个q其实就是队列的队列。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;queue&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;map&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn&nbsp;=&nbsp;1024;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<br /><span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,&nbsp;n,&nbsp;k&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;t,&nbsp;t)&nbsp;{<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;列队编号</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Scenario&nbsp;#"&nbsp;&lt;&lt;&nbsp;++k&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;qid&nbsp;=&nbsp;1;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map&lt;<span style="color: #0000FF; ">int</span>,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;team;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(t--)&nbsp;{<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;uid;<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;uid;<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;team[uid]&nbsp;=&nbsp;qid;<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qid++;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;uid是队员编号、&nbsp;tid是那一对队的编号</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;q,q2[maxn];<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;op;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;uid;<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;op,&nbsp;op[0]&nbsp;!=&nbsp;'S')&nbsp;{<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;入队列</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('E'&nbsp;==&nbsp;op[0])&nbsp;{<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;uid;<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tid&nbsp;=&nbsp;team[uid];<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(q2[tid].empty())&nbsp;q.push(tid);<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q2[tid].push(uid);<br /><span style="color: #008080; ">42</span>&nbsp;<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;出队列</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('D'&nbsp;==&nbsp;op[0])&nbsp;{<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tid&nbsp;=&nbsp;q.front();<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;x&nbsp;=&nbsp;q2[tid].front();<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q2[tid].pop();<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;x&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(q2[tid].empty())&nbsp;q.pop();<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">62</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-24 08:31 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/24/210144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva12096 The SetStack Computer By sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/23/210143.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Mon, 23 Mar 2015 14:29:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/23/210143.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210143.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/23/210143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210143.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210143.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;vector&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;map&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;#include&nbsp;&lt;stack&gt;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;#include&nbsp;&lt;algorithm&gt;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;ALL(x)&nbsp;x.begin(),&nbsp;x.end()<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;INS(x)&nbsp;inserter(x,&nbsp;x.begin())<br /><span style="color: #008080; ">10</span>&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">12</span>&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;typedef&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;Set;<br /><span style="color: #008080; ">14</span>&nbsp;map&lt;Set,&nbsp;<span style="color: #0000FF; ">int</span>&gt;&nbsp;IDCache;<br /><span style="color: #008080; ">15</span>&nbsp;vector&lt;Set&gt;&nbsp;Setcache;<br /><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;主要的想法是能想到用map&lt;set&lt;int&gt;,&nbsp;int&gt;这种数据结构来把集合映射成整数<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;关键实现在ID函数，对于给定的set&lt;int&gt;都能返回一个唯一编号、vector虽然不能保证元素的唯一性。<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;但是我们可以先对map进行检查来保证vector中元素的唯一性，这样每个元素就能唯一编号，刚好可以利用他们的整数索引。<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;其中set_union、set_intersection中得实现原理不是重点，先学会怎么用才是重点。<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;ID函数实现了对新的集合存储，并且</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;ID(Set&nbsp;x);<br /><span style="color: #008080; ">22</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">23</span>&nbsp;<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stack&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,&nbsp;n;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;op;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;t;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(t--)&nbsp;{<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n;<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDCache.clear();<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Setcache.clear();<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">34</span>&nbsp;<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;op;<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(op[0]&nbsp;==&nbsp;'P')&nbsp;s.push(ID(Set()));&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Set()就是空集</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(op[0]&nbsp;==&nbsp;'D')&nbsp;s.push(s.top());<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;{<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;x1&nbsp;=&nbsp;Setcache[s.top()];&nbsp;s.pop();<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;x2&nbsp;=&nbsp;Setcache[s.top()];&nbsp;s.pop();<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set&nbsp;x;<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(op[0]&nbsp;==&nbsp;'U')&nbsp;set_union&nbsp;(ALL(x1),&nbsp;ALL(x2),&nbsp;INS(x));<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(op[0]&nbsp;==&nbsp;'I')&nbsp;set_intersection&nbsp;(ALL(x1),&nbsp;ALL(x2),&nbsp;INS(x));<br /><span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(op[0]&nbsp;==&nbsp;'A')&nbsp;{&nbsp;x&nbsp;=&nbsp;x2;&nbsp;x.insert(ID(x1));&nbsp;}<br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.push(ID(x));<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;Setcache[s.top()].size()&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"***"&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">56</span>&nbsp;}<br /><span style="color: #008080; ">57</span>&nbsp;<br /><span style="color: #008080; ">58</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;相当于数据库中得auto_increment,&nbsp;返回一个唯一的ID值</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">59</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;ID(Set&nbsp;x)&nbsp;{<br /><span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(IDCache.count(x))&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;IDCache[x];<br /><span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Setcache.push_back(x);<br /><span style="color: #008080; ">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;IDCache[x]&nbsp;=&nbsp;Setcache.size()&nbsp;-&nbsp;1;<br /><span style="color: #008080; ">64</span>&nbsp;<br /><span style="color: #008080; ">65</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-23 22:29 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/23/210143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva10815 by sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/16/210057.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Mon, 16 Mar 2015 10:28:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/16/210057.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210057.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/16/210057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210057.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210057.html</trackback:ping><description><![CDATA[题目很简单。其实stringstream就的用法和iosteam差不多，所以学习起来是很简单的。stringstream类里面有一个string缓存，str()和str(string)成员函数。<br />前者用于把stringstream的返回string缓存，后者是把string对象包装成stringstream对象。stringstream类存在于sstream头文件中。其是独立于标准I/O但有类似<br />功能的类。clear主要是为了多次使用stringstream，因为stringstream每次的构造都十分耗时，所以最后能多次，反复使用，就如同面向对象里面的单例模式。<br />代码如下：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">set</span>&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;sstream&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">string</span>&gt;&nbsp;dict;<br /><span style="color: #008080; ">10</span>&nbsp;stringstream&nbsp;ss;<br /><span style="color: #008080; ">11</span>&nbsp;<br /><span style="color: #008080; ">12</span>&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #008000; ">&nbsp;主要学习两个重点stringstream的用法与set容器的insert、迭代器的用法。<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; ">&nbsp;</span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">15</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">16</span>&nbsp;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;s,buf;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;s)&nbsp;{<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;s.size();<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isalpha(s[i]))&nbsp;s[i]&nbsp;=&nbsp;tolower(s[i]);&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;s[i]&nbsp;=&nbsp;'&nbsp;';<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ss.clear();<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ss.str(s);<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(ss&nbsp;&gt;&gt;&nbsp;buf)&nbsp;dict.insert(buf);<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">set</span>&lt;<span style="color: #0000FF; ">string</span>&gt;::iterator&nbsp;it&nbsp;=&nbsp;dict.begin();&nbsp;it&nbsp;!=&nbsp;dict.end();&nbsp;++it)<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;*it&nbsp;&lt;&lt;&nbsp;endl;<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">32</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-16 18:28 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/16/210057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva 101 by sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/16/210052.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Mon, 16 Mar 2015 07:03:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/16/210052.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210052.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/16/210052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210052.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210052.html</trackback:ping><description><![CDATA[这是一道很好的模拟题，用vector&lt;int&gt; p[maxn]，建立模型，映射为maxn个堆。主要要掌握vector模拟堆操作的简单方法。<br />接下来得思路是自顶向下的方式，逐步完善程序。首先根据提议列出下表。<br />1.move a onto b<br />clear_above(a) &amp;&amp; clear_above(b);<br />insert a above b;<br /><br />2.move a over b<br />clear(a)<br />insert a above bs<br /><br />3.pile a onto b<br />clear(b)<br />insert as above b<br /><br />4.pile a over b<br />insert as above bs<br /><br />观察可以提取出move的话必有clear_above(a)、onto必有clear_above(b).<br />而insert 动作不管b是在p[b]的顶部还是外部。都是p[b].push_back(a或a以上的木块)<br />所以可以抽取成pile_into(pa, ha, pb);<br /><br />考虑完这些，开始写框架。如下<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;cstdio&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;#include&nbsp;&lt;vector&gt;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn&nbsp;=&nbsp;64;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br /><span style="color: #008080; ">10</span>&nbsp;vector&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;a[maxn];<br /><span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;find_block(<span style="color: #0000FF; ">int</span>&nbsp;a,&nbsp;<span style="color: #0000FF; ">int</span>&amp;&nbsp;h);<br /><span style="color: #008080; ">12</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;clear_above(<span style="color: #0000FF; ">int</span>&nbsp;p,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;h);<br /><span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;pile_into(<span style="color: #0000FF; ">int</span>&nbsp;pa,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ha,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pb);<br /><span style="color: #008080; ">14</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;print();<br /><span style="color: #008080; ">15</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">16</span>&nbsp;<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;s1,&nbsp;s2;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;n);<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n&nbsp;;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i].push_back(i);<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;s1,&nbsp;s1&nbsp;!=&nbsp;"quit")&nbsp;{<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ba,bb;<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;ba&nbsp;&gt;&gt;&nbsp;s2&nbsp;&gt;&gt;&nbsp;bb;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ha&nbsp;=&nbsp;0,hb&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pa&nbsp;=&nbsp;find_block(ba,&nbsp;ha);<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pb&nbsp;=&nbsp;find_block(bb,&nbsp;hb);<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(pa&nbsp;==&nbsp;pb)&nbsp;<span style="color: #0000FF; ">continue</span>;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(s1&nbsp;==&nbsp;"move")&nbsp;clear_above(pa,&nbsp;ha);<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(s2&nbsp;==&nbsp;"onto")&nbsp;clear_above(pb,&nbsp;hb);<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pile_into(pa,&nbsp;ha,&nbsp;pb);<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print();<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">40</span>&nbsp;}</div>&nbsp;<br />接下来，完成程序其它部分，按照框架的意思，逐步完善。如下<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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: #0000FF; ">void</span>&nbsp;print()&nbsp;{<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d:",i);<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;h&nbsp;=&nbsp;0;&nbsp;h&nbsp;&lt;&nbsp;a[i].size();&nbsp;h++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("&nbsp;%d",&nbsp;a[i][h]);<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">10</span>&nbsp;}<br /><span style="color: #008080; ">11</span>&nbsp;<br /><span style="color: #008080; ">12</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;find_block(<span style="color: #0000FF; ">int</span>&nbsp;ba,&nbsp;<span style="color: #0000FF; ">int</span>&amp;&nbsp;h)&nbsp;{&nbsp;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;vec_size&nbsp;=&nbsp;a[i].size();<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(h&nbsp;=&nbsp;0;&nbsp;h&nbsp;&lt;&nbsp;vec_size;&nbsp;h++)&nbsp;{<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(ba&nbsp;==&nbsp;a[i][h])&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;i;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;-1;<br /><span style="color: #008080; ">23</span>&nbsp;}<br /><span style="color: #008080; ">24</span>&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;clear_above(<span style="color: #0000FF; ">int</span>&nbsp;p,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;h)&nbsp;{<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;vec_size&nbsp;=&nbsp;a[p].size();<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;h&nbsp;+&nbsp;1;&nbsp;i&nbsp;&lt;&nbsp;vec_size;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;b&nbsp;=&nbsp;a[p][i];<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[b].push_back(b);<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[p].resize(h&nbsp;+&nbsp;1);<br /><span style="color: #008080; ">34</span>&nbsp;}<br /><span style="color: #008080; ">35</span>&nbsp;<br /><span style="color: #008080; ">36</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;pile_into(<span style="color: #0000FF; ">int</span>&nbsp;pa,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ha,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pb)&nbsp;{<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;vec_size&nbsp;=&nbsp;a[pa].size();<br /><span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;ha;&nbsp;i&nbsp;&lt;&nbsp;vec_size;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[pb].push_back(a[pa][i]);<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[pa].resize(ha);<br /><span style="color: #008080; ">44</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-16 15:03 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/16/210052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva 1589 by sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/15/210044.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sun, 15 Mar 2015 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/15/210044.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210044.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/15/210044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210044.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210044.html</trackback:ping><description><![CDATA[坑爹的模拟题目。自己对于这种比较复杂点得模拟题的能力概述还不够，还多加练习。贴别是做得时候一直再想如何检查车中间有没有棋子，炮中间有没有棋子。到网上参考别人的代码才发先这么简单的办法，自己尽然想不到。多加练习，总结下该题目吧。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp; 1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br /><span style="color: #008080; ">&nbsp;&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br /><span style="color: #008080; ">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;N&nbsp;12<br /><span style="color: #008080; ">&nbsp;&nbsp;4</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;brd[N][N];<br /><span style="color: #008080; ">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;dx[]&nbsp;=&nbsp;{1,-1,0,0},&nbsp;dy[]&nbsp;=&nbsp;{0,0,1,-1};<br /><span style="color: #008080; ">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;hx[]&nbsp;=&nbsp;{-2,-1,-2,-1,1,2,1,2};<br /><span style="color: #008080; ">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;hy[]&nbsp;=&nbsp;{-1,-2,1,2,-2,-1,2,1};<br /><span style="color: #008080; ">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tx[]&nbsp;=&nbsp;{-1,-1,-1,-1,1,1,1,1};<br /><span style="color: #008080; ">&nbsp;10</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ty[]&nbsp;=&nbsp;{-1,-1,1,1,-1,-1,1,1};<br /><span style="color: #008080; ">&nbsp;11</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cr[2],&nbsp;cc[2];<br /><span style="color: #008080; ">&nbsp;12</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;13</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;14</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;check(<span style="color: #0000FF; ">int</span>,&nbsp;<span style="color: #0000FF; ">int</span>);<br /><span style="color: #008080; ">&nbsp;15</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;16</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">&nbsp;17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;t,&nbsp;bX,&nbsp;bY;<br /><span style="color: #008080; ">&nbsp;19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;s[5];<br /><span style="color: #008080; ">&nbsp;20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d%d%d",&amp;t,&nbsp;&amp;bX,&nbsp;&amp;bY),&nbsp;t&nbsp;||&nbsp;bX&nbsp;||&nbsp;bY)&nbsp;{<br /><span style="color: #008080; ">&nbsp;21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(brd,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(brd));<br /><span style="color: #008080; ">&nbsp;23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cr[0]&nbsp;=&nbsp;cc[0]&nbsp;=&nbsp;cr[1]&nbsp;=&nbsp;cc[1]&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">&nbsp;24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;t;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;rX,&nbsp;rY;<br /><span style="color: #008080; ">&nbsp;28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s%d%d",&nbsp;s,&nbsp;&amp;rX,&nbsp;&amp;rY);<br /><span style="color: #008080; ">&nbsp;29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('C'&nbsp;==&nbsp;s[0])&nbsp;{<br /><span style="color: #008080; ">&nbsp;30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cr[0])&nbsp;cr[1]&nbsp;=&nbsp;rX,&nbsp;cc[1]&nbsp;=&nbsp;rY;<br /><span style="color: #008080; ">&nbsp;32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;cr[0]&nbsp;=&nbsp;rX,&nbsp;cc[0]&nbsp;=&nbsp;rY;<br /><span style="color: #008080; ">&nbsp;33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;brd[rX][rY]&nbsp;=&nbsp;s[0];<br /><span style="color: #008080; ">&nbsp;35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;判断是否四个方向都会被将军,或者无路可走的方向也认为是被将军</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;38</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cnt&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">&nbsp;39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;4;&nbsp;i++)<br /><span style="color: #008080; ">&nbsp;40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;+=&nbsp;check(bX&nbsp;+&nbsp;dx[i],&nbsp;bY&nbsp;+&nbsp;dy[i]);<br /><span style="color: #008080; ">&nbsp;41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cnt&nbsp;&lt;&nbsp;4)&nbsp;puts("NO");<br /><span style="color: #008080; ">&nbsp;43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;puts("YES");<br /><span style="color: #008080; ">&nbsp;44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;47</span>&nbsp;}<br /><span style="color: #008080; ">&nbsp;48</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;49</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;check(<span style="color: #0000FF; ">int</span>&nbsp;r,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;c)&nbsp;{<br /><span style="color: #008080; ">&nbsp;50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;越界，无路可走</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;52</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(r&nbsp;&lt;&nbsp;1&nbsp;||&nbsp;r&nbsp;&gt;&nbsp;3&nbsp;||&nbsp;c&nbsp;&lt;&nbsp;4&nbsp;||&nbsp;c&nbsp;&gt;&nbsp;6)&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;因为我们没法保证车中间有没有其他棋子，所以必须从近到远一格格检查<br /></span><span style="color: #008080; ">&nbsp;56</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;车在同行且中间无棋子</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;57</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;c&nbsp;-&nbsp;1;&nbsp;j&nbsp;&gt;&nbsp;0;&nbsp;j--)&nbsp;{<br /><span style="color: #008080; ">&nbsp;58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[r][j])<br /><span style="color: #008080; ">&nbsp;59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('R'&nbsp;==&nbsp;brd[r][j])&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">&nbsp;61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;c&nbsp;+&nbsp;1;&nbsp;j&nbsp;&lt;=&nbsp;9;&nbsp;j++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[r][j])<br /><span style="color: #008080; ">&nbsp;66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('R'&nbsp;==&nbsp;brd[r][j])&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;67</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">&nbsp;68</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;70</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;71</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;车在同列且中间物棋子</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;72</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;r&nbsp;-&nbsp;1;&nbsp;j&nbsp;&gt;&nbsp;0;&nbsp;j--)&nbsp;{<br /><span style="color: #008080; ">&nbsp;73</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;74</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[j][c])<br /><span style="color: #008080; ">&nbsp;75</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('R'&nbsp;==&nbsp;brd[j][c])&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;76</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">&nbsp;77</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;78</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;79</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;80</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;r&nbsp;+&nbsp;1;&nbsp;j&nbsp;&lt;=10;&nbsp;j++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;81</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;82</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[j][c])<br /><span style="color: #008080; ">&nbsp;83</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;('R'&nbsp;==&nbsp;brd[j][c]&nbsp;||&nbsp;'G'&nbsp;==&nbsp;brd[j][c])&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;84</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">break</span>;<br /><span style="color: #008080; ">&nbsp;85</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;86</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">&nbsp;87</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;88</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;炮将军</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;89</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;2;&nbsp;k++)&nbsp;{<br /><span style="color: #008080; ">&nbsp;90</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;91</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;行有炮</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;92</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(r&nbsp;==&nbsp;cr[k])&nbsp;{<br /><span style="color: #008080; ">&nbsp;93</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cnt&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">&nbsp;94</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;c&nbsp;-&nbsp;1;&nbsp;j&nbsp;&gt;&nbsp;cc[k];&nbsp;j--)&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[r][j])&nbsp;++cnt;<br /><span style="color: #008080; ">&nbsp;95</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cnt&nbsp;==&nbsp;1)&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;96</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">&nbsp;97</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;c&nbsp;+&nbsp;1;&nbsp;j&nbsp;&lt;&nbsp;cc[k];&nbsp;j++)&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[r][j])&nbsp;++cnt;<br /><span style="color: #008080; ">&nbsp;98</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cnt&nbsp;==&nbsp;1)&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">&nbsp;99</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">100</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">101</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">102</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;列有跑</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">103</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(c&nbsp;==&nbsp;cc[k])&nbsp;{<br /><span style="color: #008080; ">104</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cnt&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">105</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;r&nbsp;-&nbsp;1;&nbsp;j&nbsp;&gt;&nbsp;cr[k];&nbsp;j--)&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[j][c])&nbsp;++cnt;<br /><span style="color: #008080; ">106</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cnt&nbsp;==&nbsp;1)&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">107</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">108</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;r&nbsp;+&nbsp;1;&nbsp;j&nbsp;&lt;&nbsp;cr[k];&nbsp;j++)&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[j][c])&nbsp;++cnt;<br /><span style="color: #008080; ">109</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(cnt&nbsp;==&nbsp;1)&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">110</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">111</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">112</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">113</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">114</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">115</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;马将军,马的8个方位</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">116</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;k&nbsp;=&nbsp;0;&nbsp;k&nbsp;&lt;&nbsp;8;&nbsp;++k)&nbsp;{<br /><span style="color: #008080; ">117</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">118</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tr&nbsp;=&nbsp;r&nbsp;+&nbsp;hx[k],&nbsp;tc&nbsp;=&nbsp;c&nbsp;+&nbsp;hy[k];<br /><span style="color: #008080; ">119</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(tr&nbsp;&lt;&nbsp;1&nbsp;||&nbsp;tr&nbsp;&gt;&nbsp;10&nbsp;||&nbsp;tc&nbsp;&lt;&nbsp;1&nbsp;||&nbsp;tc&nbsp;&gt;&nbsp;9)&nbsp;<span style="color: #0000FF; ">continue</span>;<br /><span style="color: #008080; ">120</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(brd[tr][tc]&nbsp;==&nbsp;'H'&nbsp;&amp;&amp;&nbsp;(!brd[r&nbsp;+&nbsp;tx[k]][c&nbsp;+&nbsp;ty[k]]))<br /><span style="color: #008080; ">121</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br /><span style="color: #008080; ">122</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">123</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">124</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">125</span>&nbsp;}</div><img src ="http://www.cppblog.com/sixleaves/aggbug/210044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-15 16:42 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/15/210044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 213 By sixleaves</title><link>http://www.cppblog.com/sixleaves/archive/2015/03/13/210027.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 13 Mar 2015 12:06:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/03/13/210027.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/210027.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/03/13/210027.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/210027.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/210027.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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&nbsp;</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&nbsp;</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;3</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;readChar();<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;readInt(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;c);<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;readCodes();<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "></span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #008000; ">&nbsp;1.读取字符时候如何过滤掉换行符号，兼容类unix和windows操作系统&nbsp;readChar()<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #008000; ">&nbsp;2.熟练掌握将二进制字符串映射到数组的数据结构,这个数据结构是个二元组，我们可以用该二元组唯一确定一个长度为len的二进制字符串<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #008000; ">&nbsp;（len,&nbsp;value）&nbsp;----&nbsp;&gt;&nbsp;code[len][value]<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #008000; ">&nbsp;<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; ">&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><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; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()&nbsp;{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(&nbsp;readCodes()&nbsp;)&nbsp;{&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;读编码头</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">21</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; ">&nbsp;(;;)&nbsp;{&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;读信息</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;readInt(</span><span style="color: #000000; ">3</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">24</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; ">&nbsp;(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;len)&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;全0该信息结束</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&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;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(;;)&nbsp;{&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;读信息段</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;v&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;readInt(len);<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;<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;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(v&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;len)&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;全1一个信息段结束</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar(code[len][v]);<br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&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;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000; ">&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;<br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\n</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;readInt(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;l)&nbsp;{<br /></span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;v&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">已经读取了3&nbsp;-&nbsp;l个字符</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(l</span><span style="color: #000000; ">--</span><span style="color: #000000; ">)&nbsp;{<br /></span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #000000; ">&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;v&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;v&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">+</span><span style="color: #000000; ">&nbsp;readChar()&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">0</span><span style="color: #000000; ">'</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">51</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;v;<br /></span><span style="color: #008080; ">52</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">53</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">54</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">55</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">56</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;readChar()&nbsp;{<br /></span><span style="color: #008080; ">57</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">58</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;ch;<br /></span><span style="color: #008080; ">59</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">do</span><span style="color: #000000; ">&nbsp;{<br /></span><span style="color: #008080; ">60</span>&nbsp;<span style="color: #000000; ">&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;&nbsp;&nbsp;&nbsp;ch&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;getchar();<br /></span><span style="color: #008080; ">62</span>&nbsp;<span style="color: #000000; ">&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;}</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\n</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;ch&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\r</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;ch&nbsp;)<br /></span><span style="color: #008080; ">64</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;ch;<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; "><br /></span><span style="color: #008080; ">67</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">68</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;readCodes()&nbsp;{<br /></span><span style="color: #008080; ">69</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">70</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">71</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;memset(code,&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(code));<br /></span><span style="color: #008080; ">72</span>&nbsp;<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;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;因为可能读取编码头独占一行，所以我们可能读取编码头时候会读取到上一次的回车换行，所以要使用readChar函数</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;code[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;readChar();<br /></span><span style="color: #008080; ">75</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">76</span>&nbsp;<span style="color: #000000; ">&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;len&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;&nbsp;len&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">8</span><span style="color: #000000; ">;&nbsp;len</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{<br /></span><span style="color: #008080; ">77</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">78</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; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;v&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;v&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;len)&nbsp;</span><span style="color: #000000; ">-</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;v</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{<br /></span><span style="color: #008080; ">79</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">80</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;ch&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;getchar();<br /></span><span style="color: #008080; ">81</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; ">&nbsp;(&nbsp;EOF&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;ch&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; ">82</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; ">&nbsp;(&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\n</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;ch&nbsp;</span><span style="color: #000000; ">||</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\r</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">==</span><span style="color: #000000; ">&nbsp;ch)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">83</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;code[len][v]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;ch;<br /></span><span style="color: #008080; ">84</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">85</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">86</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">87</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">88</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; ">1</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">89</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">90</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080; ">91</span>&nbsp;<span style="color: #000000; ">}</span></div><img src ="http://www.cppblog.com/sixleaves/aggbug/210027.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-03-13 20:06 <a href="http://www.cppblog.com/sixleaves/archive/2015/03/13/210027.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 10474</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/12/209800.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 12 Feb 2015 02:43:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/12/209800.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209800.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/12/209800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209800.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209800.html</trackback:ping><description><![CDATA[题目意思简单，模型就是排序，查找是否有该数字，有则输出位置，没有输出提示。
<div>具体用到了C++ STL的两个函数模板一个是sort、一个是lower_bound,lower_bound(begin, end, v);</div>
<div>lower_bound与strchr类似，但它使用的是迭代器begin与end返回的是大于等于v的最小数所在的迭代器，</div>
<div>使用该模板函数需要注意的问题是，必须是针对已经排序好得数字，具体代码如下。</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><strong><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;cstdio&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;algorithm&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn&nbsp;=&nbsp;10000;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n,&nbsp;q,&nbsp;x,&nbsp;a[maxn],&nbsp;kase&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d%d",&nbsp;&amp;n,&nbsp;&amp;q)&nbsp;==&nbsp;2&nbsp;&amp;&amp;&nbsp;n)&nbsp;{<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;scanf("%d",&nbsp;&amp;a[i]);<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(a,&nbsp;a+n);<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("CASE#&nbsp;%d:\n",&nbsp;++kase);<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(q--)&nbsp;{<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;x);<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;p&nbsp;=&nbsp;lower_bound(a,&nbsp;a+n,&nbsp;x)&nbsp;-&nbsp;a;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(a[p]&nbsp;==&nbsp;x)&nbsp;printf("%d&nbsp;found&nbsp;at&nbsp;%d\n",&nbsp;x,&nbsp;p&nbsp;+&nbsp;1);<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;printf("%d&nbsp;not&nbsp;found\n",x);<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">26</span>&nbsp;}</strong></div>
</div><img src ="http://www.cppblog.com/sixleaves/aggbug/209800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-12 10:43 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/12/209800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 253</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/08/209765.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 07 Feb 2015 17:42:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/08/209765.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209765.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/08/209765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209765.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209765.html</trackback:ping><description><![CDATA[<a href="/Files/sixleaves/253.pdf">/Files/sixleaves/253.pdf</a>&nbsp;
<div>题目在上面，可以自己下载，这道一开始没什么思路，后来仔细想想，突然有了点灵感，但是还是找不到比较简单的办法</div>
<div>程序还有优化的地步，用到的全局变量有点多。</div>
<div>我的思路是：每个数字都有一个位于Top也就是最顶得时候，只要在这时候，竖直旋转4次，分别判断就可以知道是否存在相同的cube了。</div>
<div>程序主体框架挺清晰的，但是有一点就是下标没处理好，有兴趣的，可以自己统一一下。</div>
<div>by sixleaves</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;枚举各个数字位于"上"的一种可能情况<br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;该情况下，各个数字所处的位置</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;cubeTop[7][7]&nbsp;=&nbsp;{<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,0,0,0,0,0,0},<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,1,2,3,4,5,6},<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,2,6,3,4,1,5},<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,3,2,6,1,5,4},<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,4,2,1,6,5,3},<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,5,1,3,4,6,2},<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0,6,5,3,4,2,1}<br />
<span style="color: #008080; ">13</span>&nbsp;};<br />
<span style="color: #008080; ">14</span>&nbsp;<br />
<span style="color: #008080; ">15</span>&nbsp;<br />
<span style="color: #008080; ">16</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;lastCube[7]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">17</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;curCube[7]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">18</span>&nbsp;<br />
<span style="color: #008080; ">19</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;isFind;<br />
<span style="color: #008080; ">20</span>&nbsp;<br />
<span style="color: #008080; ">21</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;[0,6)&nbsp;&nbsp;[6,12)--为另外一个cube</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">char</span>&nbsp;s[15]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">23</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;turn();<br />
<span style="color: #008080; ">24</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;update();<br />
<span style="color: #008080; ">25</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;isSameCube();<br />
<span style="color: #008080; ">26</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%s",s)&nbsp;!=&nbsp;EOF)&nbsp;{<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;枚举top面数字</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isFind&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;&lt;=6;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;初始化当前筛子</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;k&nbsp;=&nbsp;1;&nbsp;k&nbsp;&lt;=&nbsp;6;&nbsp;k++)&nbsp;{<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastCube[k]&nbsp;=&nbsp;curCube[k]&nbsp;=&nbsp;cubeTop[i][k];<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;竖直转动4次筛子</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;4;&nbsp;j++)&nbsp;{<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn();<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isSameCube())&nbsp;{<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isFind&nbsp;=&nbsp;1;<br />
<span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isFind)&nbsp;{<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;isFind&nbsp;==&nbsp;1?&nbsp;"TRUE\n"&nbsp;:&nbsp;"FALSE\n");<br />
<span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">60</span>&nbsp;}<br />
<span style="color: #008080; ">61</span>&nbsp;<br />
<span style="color: #008080; ">62</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;isSameCube()&nbsp;{<br />
<span style="color: #008080; ">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">分别比较对应6个面</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">65</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;6;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(s[curCube[i&nbsp;+&nbsp;1]&nbsp;-&nbsp;1]&nbsp;!=&nbsp;s[i&nbsp;+&nbsp;6])<br />
<span style="color: #008080; ">67</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">68</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br />
<span style="color: #008080; ">70</span>&nbsp;}<br />
<span style="color: #008080; ">71</span>&nbsp;<br />
<span style="color: #008080; ">72</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;turn()&nbsp;{<br />
<span style="color: #008080; ">73</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">74</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curCube[2]&nbsp;=&nbsp;lastCube[3];<br />
<span style="color: #008080; ">75</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curCube[4]&nbsp;=&nbsp;lastCube[2];<br />
<span style="color: #008080; ">76</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curCube[5]&nbsp;=&nbsp;lastCube[4];<br />
<span style="color: #008080; ">77</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curCube[3]&nbsp;=&nbsp;lastCube[5];<br />
<span style="color: #008080; ">78</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;更新lastCube</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">79</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;update();<br />
<span style="color: #008080; ">80</span>&nbsp;}<br />
<span style="color: #008080; ">81</span>&nbsp;<br />
<span style="color: #008080; ">82</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;update()&nbsp;{<br />
<span style="color: #008080; ">83</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">84</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastCube[2]&nbsp;=&nbsp;curCube[2];<br />
<span style="color: #008080; ">85</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastCube[4]&nbsp;=&nbsp;curCube[4];<br />
<span style="color: #008080; ">86</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastCube[5]&nbsp;=&nbsp;curCube[5];<br />
<span style="color: #008080; ">87</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lastCube[3]&nbsp;=&nbsp;curCube[3];<br />
<span style="color: #008080; ">88</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">89</span>&nbsp;}</div>
</div><img src ="http://www.cppblog.com/sixleaves/aggbug/209765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-08 01:42 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/08/209765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 489 </title><link>http://www.cppblog.com/sixleaves/archive/2015/02/07/209763.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Sat, 07 Feb 2015 05:29:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/07/209763.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209763.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/07/209763.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209763.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209763.html</trackback:ping><description><![CDATA[这道题目略坑，如果用模拟来做的话，其实很简单，一开始想的是模拟之后觉得集合更简答，但是忽略了一点是，用集合来做的话，集合是无序的，但是题目中得输入顺序是有序的。而且用模拟的时间复杂度为O(n^2).<br />
<div><br />
</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;MAXN&nbsp;1024<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;left,&nbsp;chance;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;win,&nbsp;lose;<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;guess(<span style="color: #0000FF; ">char</span>&nbsp;ch);<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;p[MAXN]&nbsp;=&nbsp;{0},&nbsp;g[MAXN]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;r&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d%s%s",&amp;r,&nbsp;p,&nbsp;g)&nbsp;==&nbsp;3&nbsp;&amp;&amp;&nbsp;r&nbsp;!=&nbsp;-1)&nbsp;{<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Round&nbsp;%d\n",&nbsp;r);<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;win&nbsp;=&nbsp;lose&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;=&nbsp;strlen(p);<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chance&nbsp;=&nbsp;7;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;g[i];&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;guess(g[i]);<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(win&nbsp;||&nbsp;lose)&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(win)&nbsp;printf("You&nbsp;win.\n");<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(lose)&nbsp;printf("You&nbsp;lose.\n");<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>&nbsp;printf("You&nbsp;chickened&nbsp;out.\n");<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">34</span>&nbsp;}<br />
<span style="color: #008080; ">35</span>&nbsp;<br />
<span style="color: #008080; ">36</span>&nbsp;<br />
<span style="color: #008080; ">37</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;guess(<span style="color: #0000FF; ">char</span>&nbsp;ch)&nbsp;{<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;finded&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;p[i];&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(ch&nbsp;==&nbsp;p[i])&nbsp;{<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p[i]&nbsp;=&nbsp;'&nbsp;';<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left--;<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;finded&nbsp;=&nbsp;1;<br />
<span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!finded)&nbsp;--chance;<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!chance)&nbsp;lose&nbsp;=&nbsp;1;<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!left)&nbsp;win&nbsp;=&nbsp;1;<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">55</span>&nbsp;}</div>
</div>
<div><br />
</div>
<div>by sixleaves</div><img src ="http://www.cppblog.com/sixleaves/aggbug/209763.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-07 13:29 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/07/209763.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 227</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/06/209753.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 06 Feb 2015 02:24:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/06/209753.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209753.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/06/209753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209753.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209753.html</trackback:ping><description><![CDATA[被坑了，2小时的题目，==。题目难点主要在处理空格和输出格式上。对于这种模拟题，我是先把框架写好，在补充。
<div>写得比较长，没有进行重构，就这样吧。getchar()等I/O虽然会读取回车，但是要按下回车，产生中断，在会结束输</div>
<div>告诉这些I/O函数来读取==。总之这题目，没什么特别的思想，完全是模拟题，能写:?的语句，尽量写，简化代码</div>
<div>还有代码宁愿严密啰嗦，也不要有Bug</div>
<div><br />
</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;">
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #78492a;">#include <span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">&lt;stdio.h&gt;</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #d12f1b;"><span style="font-variant-ligatures: no-common-ligatures; color: #78492a">#include </span>&lt;string.h&gt;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #bb2ca2;">typedef<span style="font-variant-ligatures: no-common-ligatures; color: #000000"> </span>struct<span style="font-variant-ligatures: no-common-ligatures; color: #000000"> {</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> r;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> c;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">} Point;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;"><br />
</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;"><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> main() {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">const</span> <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> maxn = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">5</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">char</span> puzzle[maxn][maxn] = {<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>};</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> kase = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> first = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">for</span> (;;) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: 'Heiti SC Light'; color: #008400;"><span style="font-family: Menlo; color: #000000;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-family: Menlo;">//&nbsp; 1.</span>先读取一个字符<span style="font-family: Menlo;">,</span>看是不是<span style="font-family: Menlo;">Z,</span>不是<span style="font-family: Menlo;">Z</span>得看看是不是空字符</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">char</span> ch;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; ch = getchar();</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (ch == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'Z'</span>) <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>][<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>] = ch;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; first == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>? first = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>: printf(<span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">"\n"</span>);</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; Point empty;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (ch == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>) { empty.r = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>, empty.c = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #008400;"><span style="font-variant-ligatures: no-common-ligatures; color: #000000">&nbsp; &nbsp; &nbsp; &nbsp; </span>//&nbsp; 2.<span style="font-family: 'Heiti SC Light';">读取</span>Puzzle<span style="font-family: 'Heiti SC Light';">初始化布局</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">for</span> (<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> i = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>; i &lt; <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">25</span>; ) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ch = getchar();</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (ch == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[ empty.r = i / <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">5</span> ][ empty.c = i % <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">5</span> ] = ch;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i++;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (ch != <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span> &amp;&amp; ch != <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'\n'</span> &amp;&amp; ch != <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'\t'</span> &amp;&amp; ch != <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'\r'</span>) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[ i/<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">5</span> ][ i%<span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">5</span> ] = ch;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i++;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #008400;"><span style="font-variant-ligatures: no-common-ligatures; color: #000000">&nbsp; &nbsp; &nbsp; &nbsp; </span>//&nbsp; 3.<span style="font-family: 'Heiti SC Light';">执行指令</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">while</span> ((ch = getchar()) != <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'0'</span>) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (ch == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'\n'</span> || ch == <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span> || !configuration) <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">continue</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> row = empty.r, col = empty.c;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (configuration) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">switch</span> (ch) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">case</span> <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'A'</span>:</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (row - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span> &gt;= <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col] = puzzle[row - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>][col];</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>][col] = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.r = row - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.c = col;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">case</span> <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'B'</span>:</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (row + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span> &lt; maxn) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col] = puzzle[row + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>][col];</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>][col] = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.r = row + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.c = col;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">case</span> <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'R'</span>:</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (col + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span> &lt; maxn) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col] = puzzle[row][col + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>];</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>] = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.r = row;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.c = col + <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">case</span> <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">'L'</span>:</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (col - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span> &gt;= <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col] = puzzle[row][col - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>];</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; puzzle[row][col - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>] = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">' '</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.r = row;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; empty.c = col - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">default</span>:</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; configuration = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">break</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #008400;"><span style="font-variant-ligatures: no-common-ligatures; color: #000000">&nbsp; &nbsp; &nbsp; &nbsp; </span>//&nbsp; 4.<span style="font-family: 'Heiti SC Light';">吃掉回车</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; ch = getchar();</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #008400">//&nbsp; 5.</span><span style="font-family: 'Heiti SC Light'; color: #008400;">输出</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">if</span> (!configuration) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; color: #d12f1b;"><span style="font-variant-ligatures: no-common-ligatures; color: #000000">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf(</span>"Puzzle #%d:\nThis puzzle has no final configuration.\n"<span style="font-variant-ligatures: no-common-ligatures; color: #000000">, ++kase);</span></p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; }<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">else</span> {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf(<span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">"Puzzle #%d:\n"</span>, ++kase);</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">for</span> (<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> row = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>; row &lt; maxn; row++) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">for</span> (<span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">int</span> col = <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>; col &lt; maxn; col++) {</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf(col == maxn - <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">1</span> ? <span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">"%c"</span> : <span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">"%c "</span>, puzzle[row][col]);</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf(<span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b">"\n"</span>);</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; &nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; }</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;">&nbsp;&nbsp; &nbsp;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">&nbsp; &nbsp; <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2">return</span> <span style="font-variant-ligatures: no-common-ligatures; color: #272ad8">0</span>;</p>
<p style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo;">}</p>
</div>
</div><img src ="http://www.cppblog.com/sixleaves/aggbug/209753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-06 10:24 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/06/209753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 445</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/05/209748.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 05 Feb 2015 12:01:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/05/209748.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209748.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/05/209748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209748.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209748.html</trackback:ping><description><![CDATA[这题，求最小周期。有点坑的是格式说明，Two
consecutive output are separated by a blank line.两种数据输出之间要有个空白行。<br />
<div>还有另外一个，len % t == 0是必须得，因为只有是周期倍数的才能求出周期。不然如：abcdabc求出的周期就变成了3.</div>
<div><br />
</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn&nbsp;=&nbsp;1024;<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;buf[maxn]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;isT(<span style="color: #0000FF; ">char</span>&nbsp;*&nbsp;buf,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len,<span style="color: #0000FF; ">int</span>&nbsp;t);<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(~scanf("%d",&amp;n))<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;n&nbsp;&gt;&nbsp;0&nbsp;)&nbsp;{<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;输入</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",buf);<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;strlen(buf);<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;计算最小周期,从小到大枚举</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;t&nbsp;=&nbsp;1;&nbsp;t&nbsp;&lt;=&nbsp;len;&nbsp;t++)&nbsp;{<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(len&nbsp;%&nbsp;t&nbsp;==&nbsp;0)<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(isT(buf,&nbsp;len,&nbsp;t))&nbsp;{<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;t);<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(--n)&nbsp;printf("\n");<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">29</span>&nbsp;}<br />
<span style="color: #008080; ">30</span>&nbsp;<br />
<span style="color: #008080; ">31</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;isT(<span style="color: #0000FF; ">char</span>&nbsp;*&nbsp;buf,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len,<span style="color: #0000FF; ">int</span>&nbsp;t)&nbsp;{<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;t;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(buf[i&nbsp;%&nbsp;t]&nbsp;!=&nbsp;buf[i])&nbsp;{<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;1;<br />
<span style="color: #008080; ">42</span>&nbsp;}</div>
</div>
<div><br />
</div>
<div>by sixleaves</div><img src ="http://www.cppblog.com/sixleaves/aggbug/209748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-05 20:01 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/05/209748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 1225</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/05/209747.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 05 Feb 2015 11:53:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/05/209747.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209747.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/05/209747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209747.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209747.html</trackback:ping><description><![CDATA[1.其实是dp题目。用建表方法避免了重复计算
<div><br />
</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;maxn=&nbsp;10008;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;count[maxn][10]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;buf[maxn]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">计算每一位</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&lt;=&nbsp;maxn;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,"%d",&nbsp;i);<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;0;&nbsp;buf[j];&nbsp;j++)&nbsp;{<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count[i][buf[j]-'0']++;<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">建立数据,防止重复计算</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;2;&nbsp;i&nbsp;&lt;=&nbsp;maxn;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;&lt;&nbsp;10;&nbsp;j++)&nbsp;{<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count[i][j]&nbsp;+=&nbsp;count[i&nbsp;-&nbsp;1][j];<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;n);<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(n&nbsp;&gt;&nbsp;0)&nbsp;{<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;e;<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;e);<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;10;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;i&nbsp;==&nbsp;9?&nbsp;"%d\n"&nbsp;:&nbsp;"%d&nbsp;",&nbsp;count[e][i]);<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n--;<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">41</span>&nbsp;}</div>
</div>
by sixleaves<img src ="http://www.cppblog.com/sixleaves/aggbug/209747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-05 19:53 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/05/209747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 1586</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/05/209746.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 05 Feb 2015 11:37:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/05/209746.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209746.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/05/209746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209746.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209746.html</trackback:ping><description><![CDATA[&nbsp;思路，其实还是切分单词，只不过这里的单词，变成了数字。代码如下。
<div><br />
</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;ctype.h&gt;<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;MAXN&nbsp;100<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;buf[MAXN]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;t[26]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;readInt(<span style="color: #0000FF; ">char</span>&nbsp;*&nbsp;buf,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;*num);<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ch,&nbsp;num;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t['C'-'A']&nbsp;=&nbsp;12.01,&nbsp;t['H'-'A']&nbsp;=&nbsp;1.008;<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t['O'&nbsp;-&nbsp;'A']&nbsp;=&nbsp;16.00,&nbsp;t['N'&nbsp;-&nbsp;'A']&nbsp;=&nbsp;14.01;<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;n);<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(n&nbsp;&gt;&nbsp;0)&nbsp;{<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;1.输入数据</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",&nbsp;buf);<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;strlen(buf);<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;sum&nbsp;=&nbsp;0.0;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;2.计算</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(;;)&nbsp;{<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(;&nbsp;buf[i]&amp;&amp;isalpha(buf[i]);&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;t[buf[i]&nbsp;-&nbsp;'A'];<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;&gt;=&nbsp;len)&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;2.1[i,&nbsp;e)为整数范围,num为整数值</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;e,num;<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e&nbsp;=&nbsp;readInt(buf,&nbsp;i,&nbsp;&amp;num);<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;t[buf[i&nbsp;-&nbsp;1]&nbsp;-&nbsp;'A']&nbsp;*&nbsp;(num&nbsp;-&nbsp;1);<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;e;<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;3.输出结果</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%.3f\n",&nbsp;sum);<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n--;<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">46</span>&nbsp;}<br />
<span style="color: #008080; ">47</span>&nbsp;<br />
<span style="color: #008080; ">48</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;如果没有找到则返回i</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;readInt(<span style="color: #0000FF; ">char</span>&nbsp;*&nbsp;buf,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;*num)&nbsp;{<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;sum&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;j;<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(j&nbsp;=&nbsp;i;&nbsp;buf[j]&nbsp;&amp;&amp;&nbsp;isdigit(buf[j]);&nbsp;j++)&nbsp;{<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;*=&nbsp;10;<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;buf[j]&nbsp;-&nbsp;'0';<br />
<span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*num&nbsp;=&nbsp;sum;<br />
<span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;j;<br />
<span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">59</span>&nbsp;}</div>
</div>
by sixleaves<img src ="http://www.cppblog.com/sixleaves/aggbug/209746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-05 19:37 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/05/209746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA 1585</title><link>http://www.cppblog.com/sixleaves/archive/2015/02/05/209735.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 05 Feb 2015 01:09:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2015/02/05/209735.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/209735.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2015/02/05/209735.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/209735.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/209735.html</trackback:ping><description><![CDATA[&nbsp;虽然为水题，但是我的算法还是比较一般。思想是切分单词的思想，确定切分开始条件，结束条件，在[b,e)之间就是所得单词，因为单词以X作为间隔，为了保证算法正确性，需要在末尾添加X。算法如下
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>.h&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;MAXN&nbsp;86<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;buf[MAXN]&nbsp;=&nbsp;{0};<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%d",&nbsp;&amp;n);<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;<span style="color: #0000FF; ">enum</span>&nbsp;{<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WordIn,<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WordOut,<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;Word;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(&nbsp;n--&gt;&nbsp;0)&nbsp;{<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%s",&nbsp;buf);<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;sum&nbsp;=&nbsp;0,&nbsp;b&nbsp;=&nbsp;0,&nbsp;e&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;strlen(buf);<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[len++]&nbsp;=&nbsp;'X',&nbsp;buf[len]&nbsp;=&nbsp;'\0';<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Word&nbsp;word&nbsp;=&nbsp;WordOut;<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;遍历字符串</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;buf[i];&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;记录单词开头</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(buf[i]&nbsp;==&nbsp;'O')&nbsp;{<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;word&nbsp;==&nbsp;WordOut?&nbsp;(&nbsp;word&nbsp;=&nbsp;WordIn,&nbsp;i)&nbsp;:&nbsp;b;<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>&nbsp;{<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;记录单词结尾,并作统计</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(word&nbsp;==&nbsp;WordIn)&nbsp;{<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;word&nbsp;=&nbsp;WordOut;<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e&nbsp;=&nbsp;i;<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;max&nbsp;=&nbsp;e&nbsp;-&nbsp;b;<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;+=&nbsp;max*(max&nbsp;+&nbsp;1)&nbsp;/&nbsp;2;<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;sum);<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">43</span>&nbsp;}</div>
</div>
by sixleaves<img src ="http://www.cppblog.com/sixleaves/aggbug/209735.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2015-02-05 09:09 <a href="http://www.cppblog.com/sixleaves/archive/2015/02/05/209735.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于怎么判断循环的次数</title><link>http://www.cppblog.com/sixleaves/archive/2014/09/23/208389.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 23 Sep 2014 13:02:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2014/09/23/208389.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/208389.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2014/09/23/208389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/208389.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/208389.html</trackback:ping><description><![CDATA[<strong>在写程序中，我们经常要判断，或者写个循环，具体让其循环几次，这个怎么计算。<br />我分别举几个例子。<br />eg1：for (i = 0; i &lt; n; i++);<br />这个是大家再熟悉不过的了，为什么它是n次循环，如果我能用数学的角度看是这样的，首先i的取值范围中，每个整数对应一个<br />循环，所以所谓的循环次数，也就是这个范围内的整数的个数。而上述的循环范围是[0, n).它的整数个数就是n - 0 = n，只有<br />对于半闭合半开放的区间能这样计算，这也是为什么从0开始计数的好处之一。一目了然。<br />eg2：<br />while(L--) {<br />}<br />这个循环循环几次呢，首先我们确定L的有效范围，由于是后置减减，所以有效范围是[L, 0).所以循环也是L次<br />如果是<br />while(--L){},那范围就是[L-1, 0),所以其循环次数是L - 1</strong><img src ="http://www.cppblog.com/sixleaves/aggbug/208389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2014-09-23 21:02 <a href="http://www.cppblog.com/sixleaves/archive/2014/09/23/208389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UVA133</title><link>http://www.cppblog.com/sixleaves/archive/2014/09/23/208388.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Tue, 23 Sep 2014 12:46:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2014/09/23/208388.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/208388.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2014/09/23/208388.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/208388.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/208388.html</trackback:ping><description><![CDATA[<h2><span id=".E9.A2.98.E7.9B.AE.E6.8F.8F.E8.BF.B0">题目描述</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 19.049999237060547px; font-family: sans-serif; font-size: 13px;">为了缩短领救济品的队伍，NNGLRP决定了以下策略：每天所有来申请救济品的人会被放在一个大圆圈，面朝里面。选定一个人为编号 1 号，其他的就从那个人开始逆时针开始编号直到 N。一个官员一开始逆时针数，数 k 个申请者，然后另一个官员第 N 个始顺时针方向数 m 个申请者，这两个人就被送去再教育。如果两个官员数的是同一个人，那个人则被送去从政，然后2个官员再在剩下的人里面继续选直到没人剩下来，注意两个被选 中的人是同时走掉的，所以就有可能两个官员选中一个人。</p>
<h2><span style="float: right; margin-left: 5px; font-size: 13px;">[<a href="http://www.nocow.cn/index.php?title=UVA_133&amp;action=edit&amp;section=2" title="编辑段落：Input" style="text-decoration: none; color: #5a3696; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">编辑</a>]</span><span id="Input">Input</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 19.049999237060547px; font-family: sans-serif; font-size: 13px;">输入含有多组测试资料，每组测试资料一列含有三个数 N，k 和 m（k, m &gt; 0，0&lt;N&lt;20）。 当输入为 0 0 0 代表输入结束。</p>
<h2><span style="float: right; margin-left: 5px; font-size: 13px;">[<a href="http://www.nocow.cn/index.php?title=UVA_133&amp;action=edit&amp;section=3" title="编辑段落：Output" style="text-decoration: none; color: #5a3696; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">编辑</a>]</span><span id="Output">Output</span></h2>
<p style="margin: 0.4em 0px 0.5em; line-height: 19.049999237060547px; font-family: sans-serif; font-size: 13px;">对每组测试资料输出一列。输出被选中的申请者的编号顺序（一对一对的）。每个数的宽度为 3 。每一对前面的那个编号为逆时针数的官员选出的，后面的那个编号为顺时针数的官员选出的（但是如果这2个官员选出同一个人，那就只会有一个编号）。每一对 之间以逗号分开。格式请参考Sample Output。</p>
<h2><span style="float: right; margin-left: 5px; font-size: 13px;">[<a href="http://www.nocow.cn/index.php?title=UVA_133&amp;action=edit&amp;section=4" title="编辑段落：Sample Input" style="text-decoration: none; color: #5a3696; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">编辑</a>]</span><span id="Sample_Input">Sample Input</span></h2>
<pre style="padding: 1em; border: 1px dashed #2f6fab; line-height: 1.1em; background-color: #f9f9f9;">10 4 3 <br />13 17 42<br />7 8 47 <br />0 0 0 </pre>
<h2><span style="float: right; margin-left: 5px; font-size: 13px;">[<a href="http://www.nocow.cn/index.php?title=UVA_133&amp;action=edit&amp;section=5" title="编辑段落：Sample Output" style="text-decoration: none; color: #5a3696; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">编辑</a>]</span><span id="Sample_Output">Sample Output</span></h2>
<pre style="padding: 1em; border: 1px dashed #2f6fab; line-height: 1.1em; background-color: #f9f9f9;"> 4 8, 9 5, 3 1, 2 6, 10, 7 <br /> 4 11, 10 1, 8 6, 13 7, 3, 5 12, 9 2 <br /> 1 3, 5 7, 2 4, 6</pre>这道题目有点绕，也讲得不严密。这里主要说下几个容易错的地方。<br />首先是你每次在写程序之前，都要十分清除规则，题目中的人是围着一圈，而且第一个的左边是第N个人，也就是它是逆时针标号的。这个十分关键。<br />其次是go函数的实现，go函数是数过L个人，返回最后一个的位置。我并不赞同，某些版本数组是从1开始计数，因为这样对于表达式的表达十分不方便。你可以<br />自己尝试用1来做，会很不方便。就是因为go函数是这样一个函数，所以当我们在下一次迭代的时候的开始位置，一定是为那个人出去的位置，也就是a[i]=0的位置。<br />所以我们第一次迭代的位置，原本A是应该在位置0，B在位置n-1。这时候只能是A在n-1和B在0.（你可以用数学归纳法理解）。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;#include&nbsp;&lt;stdio.h&gt;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">#define</span>&nbsp;MAXN&nbsp;25<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n,k,m;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;a[MAXN];<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;go(<span style="color: #0000FF; ">int</span>&nbsp;p,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;d,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;k);<span style="color: #008000; ">//</span><span style="color: #008000; ">数过k个人，开始位置p必须是数1时候的前一个位置。&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d%d%d",&nbsp;&amp;n,&nbsp;&amp;k,&nbsp;&amp;m)&nbsp;==&nbsp;3&nbsp;&amp;&amp;&nbsp;n)&nbsp;{<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;n;&nbsp;i++)&nbsp;{<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;=&nbsp;i&nbsp;+&nbsp;1;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;left&nbsp;=&nbsp;n;<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pA&nbsp;=&nbsp;n-1,&nbsp;pB&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;pANext,pBNext;<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(left)&nbsp;{<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pA&nbsp;=&nbsp;go(pA,&nbsp;1,&nbsp;k);//1表示逆时针，因为它是逆时针标号<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pB&nbsp;=&nbsp;go(pB,&nbsp;-1,&nbsp;m);//-1表示顺时针<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%3d",&nbsp;pA&nbsp;+&nbsp;1);&nbsp;left--;<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(pA&nbsp;!=&nbsp;pB)&nbsp;{&nbsp;printf("%3d",&nbsp;pB&nbsp;+&nbsp;1);&nbsp;left--;}<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[pA]&nbsp;=&nbsp;a[pB]&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(left)&nbsp;printf(",");<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n");<br /><span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">26</span>&nbsp;}<br /><span style="color: #008080; ">27</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;go(<span style="color: #0000FF; ">int</span>&nbsp;p,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;d,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;L)&nbsp;{<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(L--)&nbsp;{<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">do</span>&nbsp;{&nbsp;p&nbsp;=&nbsp;(p+n+d)%n;}&nbsp;<span style="color: #0000FF; ">while</span>(a[p]&nbsp;==&nbsp;0);<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;p;<br /><span style="color: #008080; ">32</span>&nbsp;}</div>解析:至于下一个位置为什么是p = (p+n+d)%n.其实很简单。因为我们是一步步走的，所以只有两种边界情况。假设当前位置是p(0=&lt;p&lt;n),<br />第一种边界：p + 1 &gt; n - 1，即 p + 1此时应该是到达0位置，但此时p + 1 = n，如果我们取余数，则 （p+1)%T = 0,T = n(T表示这个圆圈的周期大小)。<br />刚好能符合，又因为T = n，所以(P+T+1)%T还是不变的。<br />第二种边界: p - 1 &lt; 0, 即 p - 1此时的值是-1，对于这种情况可以反过来看，它是向后退后1个单位，可以看成向前走T - 1个单位即p -1 等效于 p + T - 1<br />，我们要等到此时的位置，再去余，(P+T-1)%T。<br />对于情况一、二。可以归纳为(P+T+d)%T,当为顺时针是d取1，否则-1.<img src ="http://www.cppblog.com/sixleaves/aggbug/208388.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2014-09-23 20:46 <a href="http://www.cppblog.com/sixleaves/archive/2014/09/23/208388.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>A + B Problem II(hdu)</title><link>http://www.cppblog.com/sixleaves/archive/2014/09/04/208228.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Thu, 04 Sep 2014 06:56:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2014/09/04/208228.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/208228.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2014/09/04/208228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/208228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/208228.html</trackback:ping><description><![CDATA[<p><strong style="font-size: 12pt;">这道题目是大数加法。总结一些一点经验。</strong></p>
<p><strong style="font-size: 12pt;">（1）整值函数的应用。（这个不懂的话，去看我Math栏目下有这个分析）</strong></p>
<p><strong style="font-size: 12pt;">（2）sscanf、sprintf的应用</strong></p>
<p><strong style="font-size: 12pt; color: #ff0000;">（3）分块计算的格式问题。</strong></p>
<p><font size="3"><strong>先直接看代码：<br />
&nbsp; &nbsp;&nbsp;</strong></font><strong><span style="font-size: 13px; color: #008080;">&nbsp;1</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">#include&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">&lt;</span><span style="font-size: 13px; background-color: #eeeeee;">iostream</span><span style="font-size: 13px; background-color: #eeeeee;">&gt;</span></strong></p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><strong><span style="color: #008080; ">&nbsp;2</span>&nbsp;#include&nbsp;&lt;cstdio&gt;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;vector&gt;<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;cstring&gt;<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">struct</span>&nbsp;BigInteger&nbsp;{<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;BASE&nbsp;=&nbsp;100000000;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;WIDTH&nbsp;=&nbsp;8;<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vector&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;s;<br />
<span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;num&nbsp;=&nbsp;0)&nbsp;{<br />
<span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<span style="color: #0000FF; ">this</span>&nbsp;=&nbsp;num;<br />
<span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;<span style="color: #0000FF; ">operator</span>=(<span style="color: #0000FF; ">long</span>&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;num)&nbsp;{<br />
<span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.clear();<br />
<span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">do</span>&nbsp;{<br />
<span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.push_back(num&nbsp;%&nbsp;BASE);<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num&nbsp;/=&nbsp;BASE;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">while</span>&nbsp;(num&nbsp;&gt;&nbsp;0);<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;*<span style="color: #0000FF; ">this</span>;<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">24</span>&nbsp;<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;<span style="color: #0000FF; ">operator</span>=(<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">string</span>&amp;&nbsp;str)&nbsp;{<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.clear();<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;x;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;len&nbsp;=&nbsp;(str.size()&nbsp;-&nbsp;1)&nbsp;/&nbsp;WIDTH&nbsp;+&nbsp;1;<span style="color: #008000; ">//</span><span style="color: #008000; ">这里有人看不懂，请看我写的整值函数&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;end&nbsp;=&nbsp;str.size()&nbsp;-&nbsp;i&nbsp;*&nbsp;WIDTH;<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;start&nbsp;=&nbsp;max(0,&nbsp;end&nbsp;-&nbsp;WIDTH);<span style="color: #008000; ">//</span><span style="color: #008000; ">确定分割的区间为[start,&nbsp;end)是左闭右开，长度就是end&nbsp;-&nbsp;start&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sscanf(str.substr(start,&nbsp;end&nbsp;-&nbsp;start).c_str(),&nbsp;"%d",&nbsp;&amp;x);<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s.push_back(x);<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;*<span style="color: #0000FF; ">this</span>;<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;<span style="color: #0000FF; ">operator</span>+(<span style="color: #0000FF; ">const</span>&nbsp;BigInteger&amp;&nbsp;bi)&nbsp;<span style="color: #0000FF; ">const</span>{<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;temp;<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.s.clear();<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0,g&nbsp;=&nbsp;0;;i++)&nbsp;{<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(g&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;i&nbsp;&gt;=&nbsp;s.size()&nbsp;&amp;&amp;&nbsp;i&nbsp;&gt;=&nbsp;bi.s.size())&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;x&nbsp;=&nbsp;g;<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;&lt;&nbsp;s.size())&nbsp;x&nbsp;+=&nbsp;s[i];<br />
<span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;&lt;&nbsp;bi.s.size())&nbsp;x&nbsp;+=&nbsp;bi.s[i];<br />
<span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp.s.push_back(x&nbsp;%&nbsp;BASE);<br />
<span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g&nbsp;=&nbsp;x&nbsp;/&nbsp;BASE;<br />
<span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;temp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;+=(<span style="color: #0000FF; ">const</span>&nbsp;BigInteger&amp;&nbsp;b)&nbsp;{<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<span style="color: #0000FF; ">this</span>&nbsp;=&nbsp;*<span style="color: #0000FF; ">this</span>&nbsp;+&nbsp;b;<span style="color: #0000FF; ">return</span>&nbsp;*<span style="color: #0000FF; ">this</span>;<br />
<span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">56</span>&nbsp;};<br />
<span style="color: #008080; ">57</span>&nbsp;<br />
<span style="color: #008080; ">58</span>&nbsp;istream&amp;&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;&gt;&gt;(istream&nbsp;&amp;<span style="color: #0000FF; ">in</span>,&nbsp;BigInteger&amp;&nbsp;x)&nbsp;{<br />
<span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;s;<br />
<span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!(<span style="color: #0000FF; ">in</span>&nbsp;&gt;&gt;s))&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">in</span>;<br />
<span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;=&nbsp;s;<br />
<span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">in</span>;<br />
<span style="color: #008080; ">63</span>&nbsp;}<br />
<span style="color: #008080; ">64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">65</span>&nbsp;ostream&amp;&nbsp;<span style="color: #0000FF; ">operator</span>&nbsp;&lt;&lt;(ostream&nbsp;&amp;<span style="color: #0000FF; ">out</span>,&nbsp;BigInteger&amp;bi)&nbsp;{<br />
<span style="color: #008080; ">66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">out</span>&nbsp;&lt;&lt;&nbsp;bi.s.back();<span style="color: #008000; "><br />
</span><span style="color: #008080; ">67</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;bi.s.size()-2;&nbsp;i&nbsp;&gt;=&nbsp;0;&nbsp;i--)&nbsp;{<span style="color: #008000; ">//</span><span style="color: #008000; ">再从倒数第二个输出&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">68</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;buf[20];<br />
<span style="color: #008080; ">69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sprintf(buf,&nbsp;"%08d",&nbsp;bi.s[i]);<br />
<span style="color: #008080; ">70</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">cout&nbsp;&lt;&lt;&nbsp;buf;</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">71</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j&nbsp;=0;&nbsp;j&nbsp;&lt;&nbsp;strlen(buf);&nbsp;j++)&nbsp;<span style="color: #0000FF; ">out</span>&nbsp;&lt;&lt;&nbsp;buf[j];<br />
<span style="color: #008080; ">72</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">73</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">out</span>;<br />
<span style="color: #008080; ">74</span>&nbsp;}<br />
<span style="color: #008080; ">75</span>&nbsp;<br />
<span style="color: #008080; ">76</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br />
<span style="color: #008080; ">77</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;n;<br />
<span style="color: #008080; ">78</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BigInteger&nbsp;a,b,c;<br />
<span style="color: #008080; ">79</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;n;<br />
<span style="color: #008080; ">80</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;kase&nbsp;=&nbsp;1;<br />
<span style="color: #008080; ">81</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(n)&nbsp;{<br />
<span style="color: #008080; ">82</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;a&nbsp;&gt;&gt;&nbsp;b;<br />
<span style="color: #008080; ">83</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;a&nbsp;+&nbsp;b;<br />
<span style="color: #008080; ">84</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(n&nbsp;!=&nbsp;1)<br />
<span style="color: #008080; ">85</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;"Case&nbsp;"&nbsp;&lt;&lt;&nbsp;kase++&nbsp;&lt;&lt;&nbsp;":"&nbsp;&lt;&lt;&nbsp;"\n"&nbsp;&lt;&lt;&nbsp;a&nbsp;&lt;&lt;&nbsp;"&nbsp;+&nbsp;"&nbsp;&lt;&lt;&nbsp;b&nbsp;&lt;&lt;&nbsp;"&nbsp;=&nbsp;"&nbsp;&lt;&lt;&nbsp;c&nbsp;&lt;&lt;&nbsp;endl&nbsp;&lt;&lt;&nbsp;endl;<br />
<span style="color: #008080; ">86</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span><br />
<span style="color: #008080; ">87</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;"Case&nbsp;"&nbsp;&lt;&lt;&nbsp;kase++&nbsp;&lt;&lt;&nbsp;":"&nbsp;&lt;&lt;&nbsp;"\n"&nbsp;&lt;&lt;&nbsp;a&nbsp;&lt;&lt;&nbsp;"&nbsp;+&nbsp;"&nbsp;&lt;&lt;&nbsp;b&nbsp;&lt;&lt;&nbsp;"&nbsp;=&nbsp;"&nbsp;&lt;&lt;&nbsp;c&nbsp;&lt;&lt;&nbsp;endl;<br />
<span style="color: #008080; ">88</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n--;<br />
<span style="color: #008080; ">89</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">90</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">91</span>&nbsp;}</strong></div><strong style="font-size: 12pt; color: #ff0000;">（1）（2）略。<br />（3）分块处理的坑：</strong><strong style="font-size: 12pt;"><br />前面两个我就不总结了，这里主要说下，分块计算的坑。假设有这个字符串"123400000001"，由于我们要将其<br />按照没8位字符分成一块所以第一块就是00000001、第二快就是1234，然后按照小端存储格式、低地址对应低位<br /></strong><strong style="font-size: 12pt;">但是但他们用sscanf格式化成整数时候，00000001不可能还是这样，这样就是八进制了，而是变成了1，所以我们<br />在输出的时候，除了最高位对应的那一块可能不足8位，剩下的块肯定都要8位处理，所以上面代码，才从第二快进行<br />输出，而且格式是%08d.</strong><img src ="http://www.cppblog.com/sixleaves/aggbug/208228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2014-09-04 14:56 <a href="http://www.cppblog.com/sixleaves/archive/2014/09/04/208228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些常识</title><link>http://www.cppblog.com/sixleaves/archive/2014/08/02/207894.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Fri, 01 Aug 2014 21:00:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2014/08/02/207894.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/207894.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2014/08/02/207894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/207894.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/207894.html</trackback:ping><description><![CDATA[闰年记法:<br />&nbsp; &nbsp; &nbsp; 四年一闰,百年不闰,四百年再闰(x % 4 &nbsp;== 0 &amp;&amp; x %100 != 0 || x % 400 == 0)<img src ="http://www.cppblog.com/sixleaves/aggbug/207894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2014-08-02 05:00 <a href="http://www.cppblog.com/sixleaves/archive/2014/08/02/207894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于大数算法的总结</title><link>http://www.cppblog.com/sixleaves/archive/2014/07/24/207767.html</link><dc:creator>swp</dc:creator><author>swp</author><pubDate>Wed, 23 Jul 2014 18:58:00 GMT</pubDate><guid>http://www.cppblog.com/sixleaves/archive/2014/07/24/207767.html</guid><wfw:comment>http://www.cppblog.com/sixleaves/comments/207767.html</wfw:comment><comments>http://www.cppblog.com/sixleaves/archive/2014/07/24/207767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/sixleaves/comments/commentRss/207767.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/sixleaves/services/trackbacks/207767.html</trackback:ping><description><![CDATA[@import url(http://www.cppblog.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
最近在学习游戏开发，又得重新看C++鸟，为了进行语法的熟悉决定再次进行刷oj，我刷的oj时杭电的oj。在1002题时候，卡了一下，但最终还是顺利通过。<br />
大数加法是一项十分十分基本的编程技能，好鸟不啰嗦鸟。<br />
<br />
算法核心思想：1.将字符串按照权重转换为整型数组中相应的位(0索引对应最低位，权重为1，是个位)。2.然后进行按照位相加运算。<br />
<br />
具体代码如下。<br />
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;main.cpp<br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;oj<br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;Created&nbsp;by&nbsp;sixleaves&nbsp;on&nbsp;14-7-23.<br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;Copyright&nbsp;(c)&nbsp;2014年&nbsp;sixleaves.&nbsp;All&nbsp;rights&nbsp;reserved.<br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; "></span><span style="color: #008000; ">//<br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #008000; "></span><br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;#include&nbsp;&lt;iostream&gt;<br />
<span style="color: #008080; ">10</span>&nbsp;#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br />
<span style="color: #008080; ">11</span>&nbsp;#include&nbsp;&lt;cstdlib&gt;<br />
<span style="color: #008080; ">12</span>&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ArSize&nbsp;=&nbsp;1024;<br />
<span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />
<span style="color: #008080; ">14</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*psResult&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;<span style="color: #0000FF; ">char</span>[ArSize];<span style="color: #008000; ">//</span><span style="font-size: 14px;">&nbsp; &nbsp;</span><span style="color: #008000;">分配于堆中，不是局部变量</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">15</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">char</span>*&nbsp;sum(<span style="color: #0000FF; ">string</span>&nbsp;a,&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;b);</div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><br />
<span style="color: #008080; ">16</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main(<span style="color: #0000FF; ">int</span>&nbsp;argc,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;*&nbsp;argv[])<br />
<span style="color: #008080; ">17</span>&nbsp;{<br />
<span style="color: #008080; ">18</span>&nbsp;<br />
<span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nTestCase;<br />
<span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;&gt;&gt;&nbsp;nTestCase;<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(i&nbsp;&lt;&nbsp;nTestCase)&nbsp;{<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;a,b;<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(cin&nbsp;&gt;&gt;&nbsp;a&nbsp;&gt;&gt;&nbsp;b)&nbsp;{<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;"Case&nbsp;"&nbsp;&lt;&lt;&nbsp;i&nbsp;+&nbsp;1&nbsp;&lt;&lt;":"&lt;&lt;&nbsp;endl;<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;a&nbsp;+&nbsp;"&nbsp;+&nbsp;"&nbsp;+&nbsp;b&nbsp;+&nbsp;"&nbsp;=&nbsp;"<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;sum(a,&nbsp;b)&nbsp;&lt;&lt;&nbsp;endl;<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(i&nbsp;+&nbsp;1&nbsp;!=&nbsp;nTestCase)<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;endl;<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">break</span>;<br />
<span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />
<span style="color: #008080; ">35</span>&nbsp;}<br />
<span style="color: #008080; ">36</span>&nbsp;<br />
<span style="color: #008080; ">37</span>&nbsp;<span style="color: #0000FF; ">char</span>*&nbsp;sum(<span style="color: #0000FF; ">string</span>&nbsp;a,&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;b)&nbsp;{<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="font-size: 14px;">&nbsp; &nbsp;</span><span style="color: #008000;">进行数据的转换，把字符串数据转换为整数</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">39</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="font-size: 14px;">&nbsp; &nbsp;</span><span style="color: #008000;">char&nbsp;*psResult&nbsp;=&nbsp;new&nbsp;char[ArSize];</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008000;">&nbsp; &nbsp; &nbsp; &nbsp; //</span><span style="font-size: 14px;">&nbsp; &nbsp;</span><span style="color: #008000;">为了提高程序速度，把这个放在了外面，不用每次都申请</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">40</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nR[ArSize]&nbsp;=&nbsp;{0}, nA[ArSize]&nbsp;=&nbsp;{0}, nB[ArSize]&nbsp;=&nbsp;{0};<span style="color: #008000; ">// &nbsp;&nbsp;</span><span style="color: #008000; ">并且都初始化为0</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nLenA&nbsp;=&nbsp;a.length(), nLenB&nbsp;=&nbsp;b.length();<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;nLenA;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nA[i]&nbsp;=&nbsp;a[nLenA&nbsp;-&nbsp;i&nbsp;-&nbsp;1]&nbsp;-&nbsp;'0';<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;nLenB;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nB[i]&nbsp;=&nbsp;b[nLenB&nbsp;-&nbsp;i&nbsp;-&nbsp;1]&nbsp;-&nbsp;'0';<br />
<span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="font-size: 14px;">&nbsp; &nbsp;</span><span style="color: #008000;">进行相加运算</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nLenMax&nbsp;=&nbsp;nLenA&nbsp;&gt;&nbsp;nLenB?&nbsp;nLenA&nbsp;:&nbsp;nLenB;<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;nLenMax;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nR[i]&nbsp;+=&nbsp;nA[i]&nbsp;+&nbsp;nB[i];<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(nR[i]&nbsp;&gt;&nbsp;9)&nbsp;{<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nR[i]&nbsp;-=&nbsp;10;<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nR[i&nbsp;+&nbsp;1]++;<br />
<span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">// &nbsp;&nbsp;</span><span style="color: #008000;">转换为字符串</span></div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><span style="color: #008080; ">58</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(nR[nLenMax]&nbsp;!=&nbsp;0)<span style="color: #008000; ">// &nbsp;&nbsp;</span><span style="color: #008000; ">如果最后一位相加有近位，则总长度加1</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">59</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nLenMax++;<br />
<span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">int</span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;nLenMax;&nbsp;i++)&nbsp;{<br />
<span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psResult[i]&nbsp;=&nbsp;nR[nLenMax&nbsp;-&nbsp;i&nbsp;-&nbsp;1]&nbsp;+&nbsp;'0';<br />
<span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;psResult[nLenMax]&nbsp;=&nbsp;'\0';<br />
<span style="color: #008080; ">64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;psResult;<br />
<span style="color: #008080; ">65</span>&nbsp;}<br />
<span style="color: #008080; ">66</span>&nbsp;</div><img src ="http://www.cppblog.com/sixleaves/aggbug/207767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/sixleaves/" target="_blank">swp</a> 2014-07-24 02:58 <a href="http://www.cppblog.com/sixleaves/archive/2014/07/24/207767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>