﻿<?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++博客-【鈺仯爺】的 ACM博客</title><link>http://www.cppblog.com/917912363/</link><description>算法才是王道</description><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 23:18:19 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 23:18:19 GMT</pubDate><ttl>60</ttl><item><title>hdu 1026 广搜</title><link>http://www.cppblog.com/917912363/archive/2010/08/17/123667.html</link><dc:creator>【鈺仯爺】</dc:creator><author>【鈺仯爺】</author><pubDate>Tue, 17 Aug 2010 02:20:00 GMT</pubDate><guid>http://www.cppblog.com/917912363/archive/2010/08/17/123667.html</guid><wfw:comment>http://www.cppblog.com/917912363/comments/123667.html</wfw:comment><comments>http://www.cppblog.com/917912363/archive/2010/08/17/123667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/917912363/comments/commentRss/123667.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/917912363/services/trackbacks/123667.html</trackback:ping><description><![CDATA[自己写的 393MS 用的是简单的广搜过的<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">queue</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">iostream</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;std;<br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;INF&nbsp;999999</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,m;<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;dir[</span><span style="color: #000000;">4</span><span style="color: #000000;">][</span><span style="color: #000000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">{</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">};<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;mark[</span><span style="color: #000000;">101</span><span style="color: #000000;">][</span><span style="color: #000000;">101</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;map[</span><span style="color: #000000;">101</span><span style="color: #000000;">][</span><span style="color: #000000;">101</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;node<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">short</span><span style="color: #000000;">&nbsp;x,y,f[</span><span style="color: #000000;">500</span><span style="color: #000000;">];</span><span style="color: #008000;">//</span><span style="color: #008000;">这如果用int定就会变成九百多毫秒</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;t;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}v;<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;bfsprintf()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,x</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,y</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">mark[n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">][m</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">];i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(v.f[i]</span><span style="color: #000000;">!=-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%ds:(%d,%d)-&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">,i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,x,y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000;">+=</span><span style="color: #000000;">dir[v.f[i]][</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y</span><span style="color: #000000;">+=</span><span style="color: #000000;">dir[v.f[i]][</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">(%d,%d)\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,x,y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%ds:FIGHT&nbsp;AT&nbsp;(%d,%d)\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,x,y);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;bfs()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;a,b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;queue</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">node</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">q;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.x</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;a.y</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;a.t</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(a.f,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(a.f));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.push(a);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">q.empty())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b</span><span style="color: #000000;">=</span><span style="color: #000000;">q.front();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">4</span><span style="color: #000000;">;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a</span><span style="color: #000000;">=</span><span style="color: #000000;">b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.x</span><span style="color: #000000;">+=</span><span style="color: #000000;">dir[i][</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.y</span><span style="color: #000000;">+=</span><span style="color: #000000;">dir[i][</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(a.x</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">a.x</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">a.y</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">a.y</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">m</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">map[a.x][a.y]</span><span style="color: #000000;">!=</span><span style="color: #000000;">'</span><span style="color: #000000;">X</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.f[a.t]</span><span style="color: #000000;">=</span><span style="color: #000000;">i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.t</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(map[a.x][a.y]</span><span style="color: #000000;">&gt;=</span><span style="color: #000000;">'</span><span style="color: #000000;">1</span><span style="color: #000000;">'</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">map[a.x][a.y]</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">'</span><span style="color: #000000;">9</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.t</span><span style="color: #000000;">+=</span><span style="color: #000000;">map[a.x][a.y]</span><span style="color: #000000;">-</span><span style="color: #000000;">'</span><span style="color: #000000;">0</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(a.x</span><span style="color: #000000;">==</span><span style="color: #000000;">n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">a.y</span><span style="color: #000000;">==</span><span style="color: #000000;">m</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">mark[a.x][a.y]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">a.t)v</span><span style="color: #000000;">=</span><span style="color: #000000;">a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(mark[a.x][a.y]</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">a.t)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mark[a.x][a.y]</span><span style="color: #000000;">=</span><span style="color: #000000;">a.t;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.push(a);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&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;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(mark[n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">][m</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">==</span><span style="color: #000000;">INF)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">God&nbsp;please&nbsp;help&nbsp;our&nbsp;poor&nbsp;hero.\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">It&nbsp;takes&nbsp;%d&nbsp;seconds&nbsp;to&nbsp;reach&nbsp;the&nbsp;target&nbsp;position,&nbsp;let&nbsp;me&nbsp;show&nbsp;you&nbsp;the&nbsp;way.\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,mark[n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">][m</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bfsprintf();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">m)</span><span style="color: #000000;">!=-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s</span><span style="color: #000000;">"</span><span style="color: #000000;">,map[i]);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">m;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;mark[i][j]</span><span style="color: #000000;">=</span><span style="color: #000000;">INF;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;bfs();<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">FINISH\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span></div>
<br><br>    <img src ="http://www.cppblog.com/917912363/aggbug/123667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/917912363/" target="_blank">【鈺仯爺】</a> 2010-08-17 10:20 <a href="http://www.cppblog.com/917912363/archive/2010/08/17/123667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>