﻿<?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/397993401/category/14574.html</link><description>在鄙视中成长 记录成长的点滴</description><language>zh-cn</language><lastBuildDate>Fri, 22 Oct 2010 06:16:20 GMT</lastBuildDate><pubDate>Fri, 22 Oct 2010 06:16:20 GMT</pubDate><ttl>60</ttl><item><title>hdu 1181 dfs </title><link>http://www.cppblog.com/397993401/archive/2010/10/22/130879.html</link><dc:creator>付翔</dc:creator><author>付翔</author><pubDate>Fri, 22 Oct 2010 06:09:00 GMT</pubDate><guid>http://www.cppblog.com/397993401/archive/2010/10/22/130879.html</guid><wfw:comment>http://www.cppblog.com/397993401/comments/130879.html</wfw:comment><comments>http://www.cppblog.com/397993401/archive/2010/10/22/130879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/397993401/comments/commentRss/130879.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/397993401/services/trackbacks/130879.html</trackback:ping><description><![CDATA[<div>#include&lt;iostream&gt;</div><div>using namespace std;</div><div><br></div><div>const int maxn = 10000;</div><div>struct mess{</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>char start,end;</div><div>};</div><div>struct mess M[maxn];</div><div>int visted[maxn];</div><div>bool flag ;</div><div>int n;</div><div>void dfs(char ch)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>if(flag)</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>return ;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>if(ch == 'm')</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>flag = true;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>//printf("sdasdasd");</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>return ;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>int i,j;</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>for(i = 0; i &lt;n;i++)</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>if(M[i].start == ch &amp;&amp; visted[i]== 0)</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>visted[i] = 1;</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>dfs(M[i].end);</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>visted[i] = 0;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>}</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div><div>}</div><div>int main()</div><div>{</div><div>&nbsp;&nbsp; &nbsp;//freopen("out.txt","w",stdout);</div><div>&nbsp;&nbsp; &nbsp;int i,len;</div><div>&nbsp;&nbsp; &nbsp;char str[100];</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>while(scanf("%s",str)!=EOF)</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">		</span></div><div><span class="Apple-tab-span" style="white-space:pre">		</span>flag = false; i = 0;</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>memset(visted,0,sizeof(visted));</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>while(strcmp(str,"0")!=0)</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>len = strlen(str);</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>M[i].start = str[0];</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>M[i].end = str[len-1];</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>i++;scanf("%s",str);</div><div><span class="Apple-tab-span" style="white-space:pre">			</span>//printf("%d",strlen(str));</div><div><span class="Apple-tab-span" style="white-space:pre">			</span></div><div><span class="Apple-tab-span" style="white-space:pre">		</span>}</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>n = i;//n= i-1; 最后发现错误在这里</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>dfs('b');</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>printf(flag?"Yes.\n":"No.\n");</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div><div>&nbsp;&nbsp; &nbsp;return 0;</div><div>}</div><div><br></div>
<img src ="http://www.cppblog.com/397993401/aggbug/130879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/397993401/" target="_blank">付翔</a> 2010-10-22 14:09 <a href="http://www.cppblog.com/397993401/archive/2010/10/22/130879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转帖 记忆搜索 深度搜索 hdu 1978</title><link>http://www.cppblog.com/397993401/archive/2010/08/15/123510.html</link><dc:creator>付翔</dc:creator><author>付翔</author><pubDate>Sun, 15 Aug 2010 09:39:00 GMT</pubDate><guid>http://www.cppblog.com/397993401/archive/2010/08/15/123510.html</guid><wfw:comment>http://www.cppblog.com/397993401/comments/123510.html</wfw:comment><comments>http://www.cppblog.com/397993401/archive/2010/08/15/123510.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/397993401/comments/commentRss/123510.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/397993401/services/trackbacks/123510.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="border-collapse: separate; color: #000000; font-family: Simsun; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: 'Times New Roman';">
<h1 style="color: #1a5cc8; text-align: center;">How many ways</h1>
<font><strong><span style="font-family: Arial; font-size: 12px; font-weight: bold; color: green;">Time Limit: 3000/1000 MS (Java/Others)&nbsp;&nbsp;&nbsp;&nbsp;Memory Limit: 32768/32768 K (Java/Others)<br>Total Submission(s): 474&nbsp;&nbsp;&nbsp;&nbsp;Accepted Submission(s): 325<br></span></strong></font><br><br>
<div class="panel_title" style="height: 38px; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-title.png&quot;); background-color: transparent; padding: 0px 14px; color: #7ca9ed; font-size: 18px; font-family: arial; font-weight: bold; background-position: 0% 100%;" align="left">Problem Description</div>
<div class="panel_content" style="height: auto; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-content.png&quot;); margin: 0px; padding: 0px 20px; font-size: 14px; font-family: 'Times New Roman'; text-align: left;">这是一个简单的生存游戏，你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下：<br>1.机器人一开始在棋盘的起始点并有起始点所标有的能量。<br>2.机器人只能向右或者向下走，并且每走一步消耗一单位能量。<br>3.机器人不能在原地停留。<br>4.当机器人选择了一条可行路径后，当他走到这条路径的终点时，他将只有终点所标记的能量。<br><center><img  src="http://acm.hdu.edu.cn/data/images/C113-1003-1.gif" style="border-style: none;"></center><br>如上图，机器人一开始在(1,1)点，并拥有4单位能量，蓝色方块表示他所能到达的点，如果他在这次路径选择中选择的终点是(2,4)<br><br>点，当他到达(2,4)点时将拥有1单位的能量，并开始下一次路径选择，直到到达(6,6)点。<br>我们的问题是机器人有多少种方式从起点走到终点。这可能是一个很大的数，输出的结果对10000取模。</div>
<div class="panel_bottom" style="height: auto; margin: 0px; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-bottom.png&quot;); background-position: 0% 0%;">&nbsp;</div>
<br>
<div class="panel_title" style="height: 38px; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-title.png&quot;); background-color: transparent; padding: 0px 14px; color: #7ca9ed; font-size: 18px; font-family: arial; font-weight: bold; background-position: 0% 100%;" align="left">Input</div>
<div class="panel_content" style="height: auto; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-content.png&quot;); margin: 0px; padding: 0px 20px; font-size: 14px; font-family: 'Times New Roman'; text-align: left;">第一行输入一个整数T,表示数据的组数。<br>对于每一组数据第一行输入两个整数n,m(1 &lt;= n,m &lt;= 100)。表示棋盘的大小。接下来输入n行,每行m个整数e(0 &lt;= e &lt; 20)。</div>
<div class="panel_bottom" style="height: auto; margin: 0px; background-image: url(&quot;http://acm.hdu.edu.cn/images/panel-bottom.png&quot;); background-position: 0% 0%;">&nbsp;</div>
</span></span><br><br><br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; 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;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">int</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;">],n,m,ans[</span><span style="color: #000000;">101</span><span style="color: #000000;">][</span><span style="color: #000000;">101</span><span style="color: #000000;">];</span><span style="color: #008000;">//</span><span style="color: #008000;">存在当前节点可以到达终点的路数</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;&nbsp;DFS(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;y)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(x</span><span style="color: #000000;">==</span><span style="color: #000000;">n</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">y</span><span style="color: #000000;">==</span><span style="color: #000000;">m)</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(ans[x][y]</span><span style="color: #000000;">!=-</span><span style="color: #000000;">1</span><span style="color: #000000;">)</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ans[x][y];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;num</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,i,j,t</span><span style="color: #000000;">=</span><span style="color: #000000;">map[x][y];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(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;">t;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">+</span><span style="color: #000000;">i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">t;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">j</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">)</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">x</span><span style="color: #000000;">+</span><span style="color: #000000;">i</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">n</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">y</span><span style="color: #000000;">+</span><span style="color: #000000;">j</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">m)</span><span style="color: #008000;">//</span><span style="color: #008000;">!(i==0&amp;&amp;j==0)&nbsp;防止原地不动</span><span style="color: #008000;"><br></span><span style="color: #000000;">&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;&nbsp;&nbsp;&nbsp;&nbsp;num</span><span style="color: #000000;">+=</span><span style="color: #000000;">DFS(x</span><span style="color: #000000;">+</span><span style="color: #000000;">i,y</span><span style="color: #000000;">+</span><span style="color: #000000;">j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num</span><span style="color: #000000;">%=</span><span style="color: #000000;">10000</span><span style="color: #000000;">;<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;ans[x][y]</span><span style="color: #000000;">=</span><span style="color: #000000;">num;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;num;<br>}<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;">int</span><span style="color: #000000;">&nbsp;cas,i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">cas);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(cas</span><span style="color: #000000;">--&amp;&amp;</span><span style="color: #000000;">scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">m))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(ans,</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;">(ans));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(i</span><span style="color: #000000;">=</span><span style="color: #000000;">1</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(j</span><span style="color: #000000;">=</span><span style="color: #000000;">1</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">map[i][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,DFS(</span><span style="color: #000000;">1</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;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div>
<br class="Apple-interchange-newline"><img src ="http://www.cppblog.com/397993401/aggbug/123510.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/397993401/" target="_blank">付翔</a> 2010-08-15 17:39 <a href="http://www.cppblog.com/397993401/archive/2010/08/15/123510.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>