﻿<?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++博客-secret of garden-文章分类-POJ</title><link>http://www.cppblog.com/secret/category/19310.html</link><description>a secret place</description><language>zh-cn</language><lastBuildDate>Mon, 14 May 2012 20:12:38 GMT</lastBuildDate><pubDate>Mon, 14 May 2012 20:12:38 GMT</pubDate><ttl>60</ttl><item><title>1328</title><link>http://www.cppblog.com/secret/articles/174690.html</link><dc:creator>secret</dc:creator><author>secret</author><pubDate>Sat, 12 May 2012 14:26:00 GMT</pubDate><guid>http://www.cppblog.com/secret/articles/174690.html</guid><wfw:comment>http://www.cppblog.com/secret/comments/174690.html</wfw:comment><comments>http://www.cppblog.com/secret/articles/174690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/secret/comments/commentRss/174690.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/secret/services/trackbacks/174690.html</trackback:ping><description><![CDATA[这题其实蛮简单的，但是呢，主要就是学的地方就是对精度的控制，还有一个贪心的技巧，那个区间覆盖的问题。直接分析代码吧，其中的各种技巧还有需要注意的地方很多。<span style="background-color: #eeeeee; font-size: 13px; ">#include&nbsp;</span><span style="background-color: #eeeeee; font-size: 13px; ">&lt;</span><span style="background-color: #eeeeee; font-size: 13px; ">iostream</span><span style="background-color: #eeeeee; font-size: 13px; ">&gt;</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">#include&nbsp;&lt;cstdlib&gt;<br />#include&nbsp;&lt;cstdio&gt;<br />#include&nbsp;&lt;cstring&gt;<br />#include&nbsp;&lt;<span style="color: #0000FF; ">string</span>&gt;<br />#include&nbsp;&lt;cmath&gt;<br />#include&nbsp;&lt;vector&gt;<br />#include&nbsp;&lt;map&gt;<br />#include&nbsp;&lt;queue&gt;<br />#include&nbsp;&lt;climits&gt;<br />#include&nbsp;&lt;algorithm&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;eps&nbsp;=&nbsp;1e-9;<br /><span style="color: #0000FF; ">const</span>&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;inf&nbsp;=&nbsp;1e10;<br /><span style="color: #0000FF; ">int</span>&nbsp;sgn(<span style="color: #0000FF; ">double</span>&nbsp;x)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;(x&nbsp;&gt;&nbsp;eps)&nbsp;-&nbsp;(x&nbsp;&lt;&nbsp;-eps); &nbsp; &nbsp;//这个地方的主要是浮点数的比较大小的方法eps是控制精度的很小的浮点数<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;n;<br /><span style="color: #0000FF; ">double</span>&nbsp;d;<br />vector&lt;pair&lt;<span style="color: #0000FF; ">double</span>,&nbsp;<span style="color: #0000FF; ">double</span>&gt;&nbsp;&gt;&nbsp;rec;<br /><br />//比较函数，以第二个变量的顺序确定顺序<br /><span style="color: #0000FF; ">bool</span>&nbsp;cmp(<span style="color: #0000FF; ">const</span>&nbsp;pair&lt;<span style="color: #0000FF; ">double</span>,&nbsp;<span style="color: #0000FF; ">double</span>&gt;&nbsp;&amp;a,&nbsp;<span style="color: #0000FF; ">const</span>&nbsp;pair&lt;<span style="color: #0000FF; ">double</span>,&nbsp;<span style="color: #0000FF; ">double</span>&gt;&nbsp;&amp;b)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;a.second&nbsp;&lt;&nbsp;b.second;<br />}<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;printf("%lf\n",&nbsp;sqrt(-3.0));</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;ca&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(scanf("%d%lf",&nbsp;&amp;n,&nbsp;&amp;d)&nbsp;==&nbsp;2)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(n&nbsp;==&nbsp;0&nbsp;&amp;&amp;&nbsp;sgn(d)&nbsp;==&nbsp;0)&nbsp;<span style="color: #0000FF; ">break</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Case&nbsp;%d:&nbsp;",&nbsp;++ca);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;flag&nbsp;=&nbsp;<span style="color: #0000FF; ">true</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rec.clear();<br />&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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;x,&nbsp;y;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%lf%lf",&nbsp;&amp;x,&nbsp;&amp;y);<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("x:&nbsp;%lf&nbsp;y:&nbsp;%lf\n",&nbsp;x,&nbsp;y);</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!flag)&nbsp;<span style="color: #0000FF; ">continue</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(sgn(fabs(y)&nbsp;-&nbsp;d)&nbsp;&gt;&nbsp;0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;<span style="color: #0000FF; ">false</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">continue</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;len&nbsp;=&nbsp;sqrt(d&nbsp;*&nbsp;d&nbsp;-&nbsp;y&nbsp;*&nbsp;y);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rec.push_back(make_pair(x&nbsp;-&nbsp;len,&nbsp;x&nbsp;+&nbsp;len)); //每个区间的范围<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%lf&nbsp;%lf\n",&nbsp;x&nbsp;-&nbsp;len,&nbsp;x&nbsp;+&nbsp;len);</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(!flag)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("-1\n");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">continue</span>;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort(rec.begin(),&nbsp;rec.end(),&nbsp;cmp); &nbsp;//排序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;cnt&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">double</span>&nbsp;last&nbsp;=&nbsp;-inf;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(vector&lt;pair&lt;<span style="color: #0000FF; ">double</span>,&nbsp;<span style="color: #0000FF; ">double</span>&gt;&nbsp;&gt;::iterator&nbsp;it&nbsp;=&nbsp;rec.begin();&nbsp;it&nbsp;!=&nbsp;rec.end();&nbsp;++it)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(sgn(last&nbsp;-&nbsp;it-&gt;first)&nbsp;&lt;&nbsp;0)&nbsp;{ &nbsp; &nbsp;//如果上个区间的最大值比下一个区间的最小值小的话，区间就没有覆盖，这个时候要增加个雷达<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++cnt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;=&nbsp;max(last,&nbsp;it-&gt;second); &nbsp; //记录每个区间的那个最大的值 &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;cnt);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div> <div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://www.cppblog.com/secret/aggbug/174690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/secret/" target="_blank">secret</a> 2012-05-12 22:26 <a href="http://www.cppblog.com/secret/articles/174690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>1753</title><link>http://www.cppblog.com/secret/articles/174688.html</link><dc:creator>secret</dc:creator><author>secret</author><pubDate>Sat, 12 May 2012 14:04:00 GMT</pubDate><guid>http://www.cppblog.com/secret/articles/174688.html</guid><wfw:comment>http://www.cppblog.com/secret/comments/174688.html</wfw:comment><comments>http://www.cppblog.com/secret/articles/174688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/secret/comments/commentRss/174688.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/secret/services/trackbacks/174688.html</trackback:ping><description><![CDATA[BFS+状态压缩<br />这里用二进制去存状态，一共需要16位来存储，输入的时候顺便处理保存原始状态。当输入很长的时候可以分别写出来一个输入。其中位运算取反，注意要挪到哪一位做异或。<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;fstream&gt;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;#include&nbsp;&lt;cstdio&gt;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;#include&nbsp;&lt;cstring&gt;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;#include&nbsp;&lt;cmath&gt;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;#include&nbsp;&lt;vector&gt;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;#include&nbsp;&lt;map&gt;<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;#include&nbsp;&lt;queue&gt;<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;#include&nbsp;&lt;climits&gt;<br /><span style="color: #008080; ">10</span>&nbsp;#include&nbsp;&lt;algorithm&gt;<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;<span style="color: #0000FF; ">int</span>&nbsp;st;<br /><span style="color: #008080; ">14</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;dis[(1&lt;&lt;16)&nbsp;+&nbsp;2];<br /><span style="color: #008080; ">15</span>&nbsp;<br /><span style="color: #008080; ">16</span>&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;get_input()&nbsp;{<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">char</span>&nbsp;p;<br /><span style="color: #008080; ">18</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;16;&nbsp;++i)&nbsp;{<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;tmp&nbsp;=&nbsp;0;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf("%c",&nbsp;&amp;p);<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(p&nbsp;==&nbsp;'\n')&nbsp;{<br /><span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--i;<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">continue</span>;<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: #0000FF; ">if</span>&nbsp;(p&nbsp;==&nbsp;'b')&nbsp;tmp&nbsp;=&nbsp;1;<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st&nbsp;=&nbsp;st&nbsp;*&nbsp;2&nbsp;+&nbsp;tmp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">输入的时候保存处理每一位的状态</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;<span style="color: #0000FF; ">true</span>;<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; ">void</span>&nbsp;bfs()&nbsp;{<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(dis,&nbsp;0,&nbsp;<span style="color: #0000FF; ">sizeof</span>(dis));<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue&lt;<span style="color: #0000FF; ">int</span>&gt;&nbsp;q;<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.push(st);<br /><span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(st&nbsp;==&nbsp;0&nbsp;||&nbsp;st&nbsp;==&nbsp;(1&lt;&lt;16)&nbsp;-&nbsp;1)&nbsp;{<br /><span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("0\n");<br /><span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&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; ">while</span>&nbsp;(!q.empty())&nbsp;{<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;sta&nbsp;=&nbsp;q.front();<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop();<br /><span style="color: #008080; ">42</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;16;&nbsp;++i)&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; ">int</span>&nbsp;newsta&nbsp;=&nbsp;sta;<br /><span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newsta&nbsp;^=&nbsp;(1&lt;&lt;i);&nbsp;&nbsp;<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;/&nbsp;4&nbsp;-&nbsp;1&nbsp;&gt;=&nbsp;0)&nbsp;newsta&nbsp;^=&nbsp;(1&lt;&lt;(i&nbsp;-&nbsp;4));<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;/&nbsp;4&nbsp;+&nbsp;1&nbsp;&lt;=&nbsp;3)&nbsp;newsta&nbsp;^=&nbsp;(1&lt;&lt;(i&nbsp;+&nbsp;4));<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;%&nbsp;4&nbsp;-&nbsp;1&nbsp;&gt;=&nbsp;0)&nbsp;newsta&nbsp;^=&nbsp;(1&lt;&lt;(i&nbsp;-&nbsp;1));<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(i&nbsp;%&nbsp;4&nbsp;+&nbsp;1&nbsp;&lt;=&nbsp;3)&nbsp;newsta&nbsp;^=&nbsp;(1&lt;&lt;(i&nbsp;+&nbsp;1));<br /><span style="color: #008080; ">49</span>&nbsp;<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(dis[newsta]&nbsp;==&nbsp;0)&nbsp;{<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dis[newsta]&nbsp;=&nbsp;dis[sta]&nbsp;+&nbsp;1;<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.push(newsta);<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;}<br /><span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;((dis[0]&nbsp;==&nbsp;0)&nbsp;&amp;&amp;&nbsp;(dis[(1&lt;&lt;16)&nbsp;-&nbsp;1]&nbsp;==&nbsp;0))&nbsp;{<br /><span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("Impossible\n");<br /><span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&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;<span style="color: #0000FF; ">if</span>&nbsp;(dis[0]&nbsp;&amp;&amp;&nbsp;dis[(1&lt;&lt;16)&nbsp;-&nbsp;1])&nbsp;{<br /><span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;max(dis[0],&nbsp;dis[(1&lt;&lt;16)&nbsp;-&nbsp;1]));&nbsp;<br /><span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&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: #0000FF; ">if</span>&nbsp;(dis[0]&nbsp;||&nbsp;dis[(1&lt;&lt;16)&nbsp;-&nbsp;1])&nbsp;{<br /><span style="color: #008080; ">65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("%d\n",&nbsp;max(dis[(1&lt;&lt;16)&nbsp;-&nbsp;1],&nbsp;dis[0]));<br /><span style="color: #008080; ">66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">67</span>&nbsp;}<br /><span style="color: #008080; ">68</span>&nbsp;<br /><span style="color: #008080; ">69</span>&nbsp;<br /><span style="color: #008080; ">70</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;main()&nbsp;{<br /><span style="color: #008080; ">71</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get_input();<br /><span style="color: #008080; ">72</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bfs();<br /><span style="color: #008080; ">73</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br /><span style="color: #008080; ">74</span>&nbsp;}</div><div class="vimiumReset vimiumHUD" style="right: 150px; opacity: 0; display: none; "></div><img src ="http://www.cppblog.com/secret/aggbug/174688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/secret/" target="_blank">secret</a> 2012-05-12 22:04 <a href="http://www.cppblog.com/secret/articles/174688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>