﻿<?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++博客-powerwater-文章分类-动态规划</title><link>http://www.cppblog.com/powerwater/category/17948.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 26 Apr 2014 19:54:53 GMT</lastBuildDate><pubDate>Sat, 26 Apr 2014 19:54:53 GMT</pubDate><ttl>60</ttl><item><title>NOIP1999第1题 拦截导弹</title><link>http://www.cppblog.com/powerwater/articles/200197.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Sun, 12 May 2013 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/200197.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/200197.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/200197.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/200197.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/200197.html</trackback:ping><description><![CDATA[题目：<br /><div><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">　　某国为了防御敌国的导弹袭击，发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷：虽然它的第一发炮弹能够到达任意的高度，但是以后每一发炮弹都不能高于前一发的高度。某天，雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段，所以只有一套系统，因此有可能不能拦截所有的导弹。</span></p><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">输入导弹依次飞来的高度（雷达给出的高度数据是不大于30000的正整数），计算这套系统最多能拦截多少导弹，如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。</span></p><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">样例：</span></p><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;&nbsp;INPUT&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OUTPUT</span></p><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;&nbsp;389&nbsp;207&nbsp;155&nbsp;300&nbsp;299&nbsp;170&nbsp;158&nbsp;65</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">6（最多能拦截的导弹数）</span></p><p style="margin-bottom:0pt; margin-top:0pt; layout-grid-mode:char; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">2（要拦截所有导弹最少要配备的系统数）</span></p></div><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: #000000; ">#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 />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">sstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</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; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">1000</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;h[N],f[N],g[N];<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;n(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">),x;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;getline(cin,s);<br />&nbsp;&nbsp;&nbsp;&nbsp;istringstream&nbsp;</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">(s);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">x)&nbsp;h[</span><span style="color: #000000; ">++</span><span style="color: #000000; ">n]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(f</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,f</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; ">,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(g</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,g</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; ">,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&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;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;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</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; ">i;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;(h[j]</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">h[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(f[j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,f[i]);<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;(h[j]</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">h[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(g[j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,g[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ans1(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">),ans2(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&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;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;ans1</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(ans1,f[i]),ans2</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(ans2,g[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">ans1</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">ans2</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;system(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">pause</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<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><img src ="http://www.cppblog.com/powerwater/aggbug/200197.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2013-05-12 16:42 <a href="http://www.cppblog.com/powerwater/articles/200197.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2012 普及组 第3题 摆花</title><link>http://www.cppblog.com/powerwater/articles/195733.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 27 Nov 2012 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/195733.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/195733.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/195733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/195733.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/195733.html</trackback:ping><description><![CDATA[<div>#include&lt;fstream&gt;<br />using namespace std;<br />const int N(108),MODN(1000007);<br />int a[N],f[N][N]={0};<br />int main()<br />{<br />&nbsp;&nbsp;&nbsp; ifstream cin("flower.in");<br />&nbsp;&nbsp;&nbsp; ofstream cout("flower.out");<br />&nbsp;&nbsp;&nbsp; int n,m;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; cin&gt;&gt;n&gt;&gt;m;<br />&nbsp;&nbsp;&nbsp; for (int i=1;i&lt;=n;i++) cin&gt;&gt;a[i];<br />&nbsp;&nbsp;&nbsp; for (int i=0;i&lt;=a[1];i++) f[1][i]=1;<br />&nbsp;&nbsp;&nbsp; for (int i=2;i&lt;=n;i++)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f[i][0]=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j=1;j&lt;=m;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int k=0;k&lt;=a[i];k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (j-k&gt;=0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f[i][j]=(f[i][j]+f[i-1][j-k])%MODN;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;f[n][m]&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; return 0;<br />}<br /></div><img src ="http://www.cppblog.com/powerwater/aggbug/195733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-11-27 15:39 <a href="http://www.cppblog.com/powerwater/articles/195733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>1174: 【USACO】麦香牛肉</title><link>http://www.cppblog.com/powerwater/articles/190044.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Sun, 09 Sep 2012 11:31:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/190044.html</guid><description><![CDATA[<div><center><h2>1174: 【USACO】麦香牛肉</h2>时间限制: 1 Sec&nbsp;&nbsp;内存限制: 16 MB<br />提交: 115&nbsp;&nbsp;解决: 67<br />[<a href="http://oj.jzxx.net/submitpage.php?id=1174">提交</a>][<a href="http://oj.jzxx.net/problemstatus.php?id=1174">状态</a>][<a href="http://oj.jzxx.net/bbs.php?pid=1174">讨论版</a>]</center><h2>题目描述</h2><div>农 夫约翰的奶牛几乎要武装暴动，因为他们听说麦当劳要推出新产品麦香牛肉。奶牛们要尽力阻止这种产品的上市。他们研究了一种&#8220;劣等包装&#8221;策略。奶牛们说： &#8220;如果麦香牛肉有3块，6块以及10块装这三种，那么想买 1, 2, 4, 5, 7, 8, 11, 14,  或17块牛肉的顾客就得不到满足了。劣等的包装，劣等的产品！&#8221;  帮助奶牛们。给出N (不同包装的种类数, 1 &lt;= N &lt;= 10)，以及N个正整数 (1 &lt;= i &lt;=  256)表示每种包装中牛肉数量，输出最大的不能买到的牛肉数量。如果任何消费要求都可以被满足或不能满足的牛肉数量没有上界，则输出0。最大的可能值 （如果存在）不超过2,000,000,000。</div><h2>输入</h2><div>第1行: N 第2..N+1行: 一个盒子里的牛肉数量。</div><h2>输出</h2><div>输出题目中要求的单个整数。</div><h2>样例输入</h2> 			<div><span>3 3 6 10</span></div><h2>样例输出</h2> 			<div>17</div><h2>提示</h2> 			<h2>来源</h2> 			<div><p><a href="http://oj.jzxx.net/problemset.php?search=USACO%202002%20Winter%20Orange">USACO 2002 Winter Orange</a></p></div></div><br />题解：<br />&nbsp;&nbsp; n=1 输出0<br />&nbsp;&nbsp; n个整数最大公约数不为1 输出0<br />&nbsp;&nbsp; 逻辑动归：f[i]={f[i-a[j]||f[i]}, 0=&lt;j&lt;n,i&gt;a[j] ，i不超过两个数的最小公倍数，应该小于256*256。<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"><img id="Code_Closed_Image_192633" onclick="this.style.display='none'; Code_Closed_Text_192633.style.display='none'; Code_Open_Image_192633.style.display='inline'; Code_Open_Text_192633.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_192633" style="display: none" onclick="this.style.display='none'; Code_Open_Text_192633.style.display='none'; Code_Closed_Image_192633.style.display='inline'; Code_Closed_Text_192633.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_192633" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">code</span><span id="Code_Open_Text_192633" style="display: none"><br /><!--<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; ">fstream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</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; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">70000</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,a[</span><span style="color: #000000; ">15</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;f[N];<br />ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">nuggets.in</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />ofstream&nbsp;cout(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">nuggets.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;gcd(</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; ">int</span><span style="color: #000000; ">&nbsp;z;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(z</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">%</span><span style="color: #000000; ">y;z;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y,y</span><span style="color: #000000; ">=</span><span style="color: #000000; ">z,z</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">%</span><span style="color: #000000; ">y);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;y;<br />}<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;possible()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(n</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">];<br />&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;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; ">)&nbsp;t</span><span style="color: #000000; ">=</span><span style="color: #000000; ">gcd(t,a[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(t</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;solve()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(f,f</span><span style="color: #000000; ">+</span><span style="color: #000000; ">N,</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<br />&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;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; ">)&nbsp;f[a[i]]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&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;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;{<br />&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;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; ">n;j</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; ">if</span><span style="color: #000000; ">&nbsp;(a[j]</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">i)<br />&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;(f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">a[j]])<br />&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&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;i</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; ">;i</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;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; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">f[i])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">i</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">n;<br />&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;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; ">)&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">a[i];<br />&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; ">possible())&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;solve();<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 />}</span></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/190044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-09-09 19:31 <a href="http://www.cppblog.com/powerwater/articles/190044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2002普及组第4题 过河卒</title><link>http://www.cppblog.com/powerwater/articles/187471.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Fri, 17 Aug 2012 03:38:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/187471.html</guid><description><![CDATA[<div><center><h2>1162: 【NOIP02普及组】过河卒</h2>时间限制: 1 Sec&nbsp;&nbsp;内存限制: 16 MB<br />提交: 716&nbsp;&nbsp;解决: 247<br />[<a href="http://oj.jzxx.net/submitpage.php?id=1162">提交</a>][<a href="http://oj.jzxx.net/problemstatus.php?id=1162">状态</a>][<a href="http://oj.jzxx.net/bbs.php?pid=1162">讨论版</a>]</center><h2>题目描述</h2><div><p>A  点有一个过河卒，需要走到目标 B  点。卒行走规则：可以向下、或者向右。同时在棋盘上的任一点有一个对方的马（如下图的C点），该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例 如下图 C 点可以控制 9 个点（图中的P1，P2 &#8230; P8 和 C）。卒不能通过对方马的控制点。 棋盘用坐标表示，A 点（0，0）、B  点（n,m）(n,m 为不超过 20 的整数)，同样马的位置坐标是需要给出的（约定:  C&lt;&gt;A，同时C&lt;&gt;B）。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数。</p> <p>&nbsp;<img alt="" src="http://oj.jzxx.net/upload/1162.jpg" /></p></div><h2>输入</h2><div><p>B点的坐标（n,m）以及对方马的坐标（X,Y）{不用判错}</p></div><h2>输出</h2><div><p>一个整数（路径的条数）。</p></div><h2>样例输入</h2> 			<div>6 6 3 2</div><h2>样例输出</h2> 			<div>17</div></div><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"><img id="Code_Closed_Image_200609" onclick="this.style.display='none'; Code_Closed_Text_200609.style.display='none'; Code_Open_Image_200609.style.display='inline'; Code_Open_Text_200609.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_200609" style="display: none" onclick="this.style.display='none'; Code_Open_Text_200609.style.display='none'; Code_Closed_Image_200609.style.display='inline'; Code_Closed_Text_200609.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_200609" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">code</span><span id="Code_Open_Text_200609" style="display: none;"><br /><!--<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; ">iostream</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</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; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">25</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dx[]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">2</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; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,</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; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">};<br /></span><span style="color: #0000FF; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dy[]</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; ">2</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,&nbsp;</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; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,</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; ">1</span><span style="color: #000000; ">};<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,m,x,y,ans(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;controled[N][N]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">};<br /></span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;f[N][N]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">};<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;solve()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i,j,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(f[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">][</span><span style="color: #000000; ">0</span><span style="color: #000000; ">])&nbsp;{&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;;}<br />&nbsp;&nbsp;&nbsp;&nbsp;f[</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 />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(k</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;k</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n</span><span style="color: #000000; ">+</span><span style="color: #000000; ">m;k</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;(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;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i;<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;(j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">||</span><span style="color: #000000; ">j</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">m)&nbsp;</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<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;(controled[i][j])&nbsp;</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i][j]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">f[i][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">f[n][m]</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x0,y0;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">m</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">x</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">y;<br />&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;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; ">8</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x0</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">+</span><span style="color: #000000; ">dx[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y</span><span style="color: #000000; ">+</span><span style="color: #000000; ">dy[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x0</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">||</span><span style="color: #000000; ">x0</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">||</span><span style="color: #000000; ">y0</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">||</span><span style="color: #000000; ">y0</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">m)&nbsp;</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;controled[x0][y0]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;controled[x][y]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;solve();&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">cin.get();cin.get();</span><span style="color: #008000; "><br /></span><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; ">0</span><span style="color: #000000;">;<br />}<br /></span></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/187471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-08-17 11:38 <a href="http://www.cppblog.com/powerwater/articles/187471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2005提高组第2题 过河</title><link>http://www.cppblog.com/powerwater/articles/187391.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Thu, 16 Aug 2012 09:15:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/187391.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/187391.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/187391.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/187391.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/187391.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【问题描述】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　在河上有一座独木桥，一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子，青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数，我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点：0，1，&#8230;&#8230;，L（其中L是桥的长度）。坐标为0的点表示桥的起点，坐标为L的点表示桥的终点。青蛙从桥的起点开始，不停的向终点方向跳跃。一次跳跃的距离是S到T之间的任意正整数（包括S,T）。当青蛙跳到或跳过坐标为L的点时，就算青蛙已经跳出了独木桥。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　题目给出独木桥的长度L，青蛙跳跃的距离范围S,T，桥上石子的位置。你的任务是确定青蛙要想过河，最少需要踩到的石子数。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【输入文件】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　输入文件river.in的第一行有一个正整数L（1&nbsp;&lt;=&nbsp;L&nbsp;&lt;=&nbsp;10^9），表示独木桥的长度。第二行有三个正整数S，T，M，分别表示青蛙一次跳跃的最小距离，最大距离，及桥上石子的个数，其中1&nbsp;&lt;=&nbsp;S&nbsp;&lt;=&nbsp;T&nbsp;&lt;=&nbsp;10，1&nbsp;&lt;=&nbsp;M&nbsp;&lt;=&nbsp;100。第三行有M个不同的正整数分别表示这M个石子在数轴上的位置（数据保证桥的起点和终点处没有石子）。所有相邻的整数之间用一个空格隔开。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【输出文件】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　输出文件river.out只包括一个整数，表示青蛙过河最少需要踩到的石子数。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【样例输入】</span></p><p style="margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">10</span><span style="color: #000000; font-size: 10.5pt; font-family: 'Verdana';"><br /></span><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">2&nbsp;3&nbsp;5</span><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; "><br /></span><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">2&nbsp;3&nbsp;5&nbsp;6&nbsp;7</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【样例输出】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">2</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">【数据规模】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　对于30%的数据，L&nbsp;&lt;=&nbsp;10000；</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; "></span><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Verdana'; ">　　对于全部的数据， L&nbsp;&lt;=</span> 10 0000 0000。</p><p>&nbsp;</p><p style="margin-left:24.0000pt; text-indent:-24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">题意：河上有桥，桥上有石子，青蛙需要沿着桥跳到河的另一侧。给出桥长L、青蛙跳的范围[s&nbsp;,&nbsp;t]、石子数量m及每个石子的位置a[i]，求青蛙最少踩到的石子数。</span></p><p style="margin-left:24.0000pt; text-indent:-24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">数据规模：1&#8804;L&#8804;10</span><span style=" font-size:12.0000pt; font-family:'宋体'; vertical-align:super; ">9&nbsp;</span><span style=" font-size:12.0000pt; font-family:'宋体'; ">，</span><span style=" font-size:12.0000pt; font-family:'宋体'; ">1&#8804;s&#8804;t&#8804;</span><span style=" font-size:12.0000pt; font-family:'Times New Roman'; ">10</span><span style=" font-size:12.0000pt; font-family:'宋体'; ">，</span><span style=" font-size:12.0000pt; font-family:'Times New Roman'; ">1</span><span style=" font-size:12.0000pt; font-family:'宋体'; ">&#8804;</span><span style=" font-size:12.0000pt; font-family:'Times New Roman'; ">M</span><span style=" font-size:12.0000pt; font-family:'宋体'; ">&#8804;</span><span style=" font-size:12.0000pt; font-family:'Times New Roman'; ">100</span></p><p style="margin-left:24.0000pt; text-indent:-24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">策略：</span></p><p style="margin-left:24.0000pt; text-indent:-24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">&#9312;对于任一位置x&nbsp;,&nbsp;只能由前面[x-t&nbsp;,&nbsp;x-s]这个范围的位置跳过来，因此只要先求出这些位置踩的石子数，找个最少的位置跳过来就ok。因此很容易想到动态转移方程：</span></p><p style="margin-left:24.0000pt; text-indent:-32.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:center; vertical-align:; "><span style=" font-weight:bold; font-size:16.0000pt; font-family:'宋体'; ">f[x]=min(f[x-j])+stone[x]&nbsp;&nbsp;&nbsp;(&nbsp;j&#8712;[s&nbsp;,&nbsp;t])</span></p><p style="margin-left:21.0000pt; text-indent:24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">f[x]表示从桥头跳到x处需踩的最少石子数，stone[x]表示x处是否是石头（1表示是，0表示否）。</span></p><p style="margin-left:24.0000pt; text-indent:-24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">&#9313;桥长可达10亿，即状态数可达10亿。很显然，数组是不能开到这么大的，怎么办？由此我们想到，能否将状态数减少，又不影响结果呢？通过观察，题目中的石子数最多只有100，如果把这些石子数放到长度为10亿单位的桥上，那是多么的稀疏呀，这就为我们提供了可能。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">怎么样压缩？压缩后两个石子间距离保留多长才不影响结果呢？</span><br /><div><div align="center"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk0AAABgCAIAAACPNdHOAAAMq0lEQVR4nO3caVvaWB8G8HxDPgevn7aztHlm2k6ns9hOt2k7TNVaq1hbV2zrUtQqi7hAWARZBHEBIqgBZFFAnhepXj64JSQEPN6/67zozEXPyaHJuflzEqgyAAAAuah6HwAAAEANIecAAIBkyDkAACAZcg4AAEiGnAMAAJIh5wAAgGTIOQAAIBlyDgAASIacAwAAkiHnAACAZMg5AAAgGXIOAABIhpwDAACSIecAAIBkyDkAACAZcg4AAEiGnAMAAJIh5wAAgGTIOQAAIBlyDuAK4TjObDZrNBqVSlXvY1ECy7I0TVMUpVKptFptvQ8H6gM5B0Agijr90qZpml/3z3rBJXXqdFiWNZvN/J91Oh1FUU1NTcoeV6O4ap9vKhB1rgMA7/wYUz7nvF6vWq2mKEqtVuv1etn7P3U6RyF39JrLm+6nHjnHcQJnROrnG4Gu4pwBFEAdEw6Hj/+nMqNfeGyKjcuyLPX/ZI86IdO51PXcWUEu6t8ROQcAMtNoNBRFeb3ecrnMMAxN0/yfqyMqOBsq5zQaDV9acRyn1Wr53TIhXck133K5bDab1Wo1x3HC5tFwTk6QYRix/47IOQCQn1qtVqlU4XCYpmnpvQkPzobKuaq/P5RlvhzH6fV6iqIYhhEyqGIkBnlFiSx8RBkO/bK5inMGUMzRV3Ysy8rS4VnBSV3k5IsFjihvXcW/RqPRCBxd4nwrDlhKPV0LEoNcbG4h5wCgJvhv6nQ6nSy9CQzO85czseudXHVkuVz2er18XgocWpb58sdMUZRarRY4rmKkBDlyTqCrOGcAxYTDYZVKxd/ULnxxP5+Q4JQ358oy1ZH8wYu9GUT6fMuH+dqAq7yUID85o/Pf/MZ8BxRwFecMoJimpiZ+/VKpVLIUEwKDU/ack6Wu4jhO7PNbssz36DWN+fRY1UGOnBPoKs4ZQAEcx9E0fXSDH/+ok/S7UQQGp+w5V5ajrtJoNGL3KWWZb/nw/W/An0SREuT43lKgqzhnAAVUfKY+51O2QKKC85xR+L9IUZSom+yl11V6vV7UbSDS53v8t774B6WFj64YKUGOnBPoKs4Z4DKSJTipEwT+RYl1ldfrPX5bP/80m8BDPXnkAo+ZT2WqZj/CIpEsQU5RFMuyQrY8q/t8QwbkHACcR/pyzLIsvyIfJ9cNqJeX9CDnHxWnafrCb4Or/nxDhqs1WwAQS/pyfDLkqMZ7lA0IhpwDAACSIecAAIBkhOfcf15NH2/1PhwAAFAacg4AAEiGnAMAGeBag4aFnAOorXqdhAqPi2sNGhZyDqC2kHOEDaok4ieoDOQcQG0h5xpw0FMfATzr0cBznheUq5+zYAWTBXIOoLaQc4026IU5JDCf5OrnHFjBZIGcA6gt5FwDDlpdntWun7NgBZMFcg6gtpBzhA2qJOInqAzkHEBtIecIG1RJxE9QGeJyboVNLa1t+zZ2/BFuOcqFYskVNrW6mV5PpDe2dqPbmdhOZpPLJpK5rXRuZzefzOylsvuZfCG7V8jvF/cLpUKxVCodHNRoNifgLIG6Q84RNqiSiJ+gMsTl3N9Djor3vep2rXn6Rovhu1bjD69NN9tMt9rN/30783PHzO1Oy13t7L2uufvdc7+9n//jw0JTj/VBn/WvftvjAebJIPNMZ38+5HjxyfnPZ+e/w65XI4sto4utY+42vad93NMxsaSd9HZN+bqn/R8M/opBP86FPs+vjCyER62rX5jVcfvahGP9q3N92rVhdEdMnujMUnTWG5vzswuBTdvyJhOMO0IJ10piMbzlWdv2ru/4NnYCES4YTYZiyfBmai2e3kjsRrZ3+YCPJ3NbqdxOOs9l9lLZvXRuP5Mv5PiML5aKpQMFIx4aBXKOsEGVRPwElSEu557q7HLl3JVt115NX28xfNdq/P618cc20603Zrrd/FPHzO1Oyx3t7C9ds7++m7vfPf/7h/k/exaaeq0P+2yP+m2PB5inOvvfQ44XHx0vPzk1w65XI65mPuC/eN7oPW8nljonvdqv3neHGd9rCvSZlwdngjpLiA/44YXwqDU8ZlvVM2sTjrVJ5/qUa8OwGDG6I2ZP1OKNzfpi837WGthkgnF7KO5cSSyGt9yr28KLeG43n8zspetaxDeaei1VCo9bl2kSHwPET1AZ4nLuySBT95xAu7ztjCLecqfTcrdr9t47MUX8mPv1F/cbvad9fKmiiO8xBvpMy/3m5UFLcGg2dLKIn3SsT7k2phfFFPFRLhhLrrApUUV8oVgqlg4q3oQaXcknKTxuXaZZr/dWMcRPUBnicu7RgK3uayUa2qVuFxbxD/gifsD2ZFBEEf/e4O8xBnpNgf7DIr5i3LOK+DkfW0URz+5k48lsIpXbTuf5Ir5iOGWK+IpBazxaHRA/QWWIy7mHfcg5NDQ0oe3asSL+xzbTTT7gxRTxLw+L+ObRU4r4iuGOF/HDCysjh9/SCy/i3avfini/mCJ+N7efzRdy+8W9wrciXq6Er5igPJ1ePeJy7kGvte5XDhoaGlrjt4t34g8D/pwivqLPoyK+66vv1CL+rJ34adeGYfFbwIsr4uPp9UQ6ckYRf1l24sXlnNEd+Ty/8nEuNDQbGrQE+83LfablHmPgg8HfPe3v+urrnPS+nVhqH/e06T2tY+6W0cVXI4v/Drv++ex88cn5fMjxTGd/Msg8HmD+6rc96LM29Vj/+LDw2/v5X7vn7nXN3dXO3u60/Nwx89+3M7fazTfbTD+8Nn3XarzRYrjWXP8TFw0NDQ3t/Hbt1fT1ZsONFsP3Iov4pzr7syH7848XFPFdUz5/hKthztXXQblcKh0UiqX9Qim3X8zmC7u5/VR2P5nZ29nNb6VziWRuk8vGdjLR7czG1u56Ir26mV5hU6FYcjnK+SOcd33Hs7btXt1yhbecKwl7MG5bjlsDm/N+dtYXs3hjZk/U6I4YFiNTro1J5/qEY03PrI3ZVkes4eGFlU9zK0OzIZ0lODAT7DMv95q+Bfy7KZ/2q5fP+Dd6T9sXT+uYu3n0W8C//OR8/tHxbMj+VGd/PMA86rc97LM19Vr/7Fn4/cP8/e75X9/N/dI1e0c7e7vT8lPHDN1uvvnG/GOb6ftW440Ww/Vmw7V6n7hoaGhojdNMnqio7LhMOXeVlQ4OiqWD/WIpv1/M7RUy+UI6t5/K7nGZvZ10fiuViyez7E42up2J8AEfT4c3U6FYMhhNBiKcb2OHz/jF8JZrJeEIJZhg3La8Oe9n53ysxRubWYqaPFHDYmTatfHVuT7hWB+3r31hVketqyML4YoivtcU6DEG3hv876Z8oor4h322B73WP3sWUMSjoaFV3WaWkHNAkIODcrF0UCiW9gpFUUV8MJYMRDn/YcALLeId6+P2aor411/cLSKL+Ltds3c6LT93WH56iyIeDU1Es3hjopYR5BxAgzq1iE9m9rjd/HY6nxBTxDtXEvZQnAl+C3jhRbzOEhqcEV3E/z3keKqzPxlkHg3YRBXx11sQ8GgXtzkfK+pSQs4BQGMRXsRHtnc3Ertr8XR4MyWqiDd5okZ3ZHpxQ1QR3zXl0056OyaW2sdFFPF8wN/vnruHIl6mNu9HzgEAXE7Hi/gsX8RnxRXxS2vb7lVxRfyYbXXUGh6upoh3aYZdLz85X3x0CC/i6XbzLT7gXxurK+KtgU1R7ypyDgAA6uyCIj6Vix8r4rN7BVGdI+cAAIBkyDkAACAZcg4AAEiGnAMAAJIRlXMcx5nNZo1GQ1FEzQsAAKpGVB40NTWp1WqKoqTk3FFYqlQqGY8NAADqgqic40nMOZqmaZqW2AkAADQIApdyWSIKOQcAQAYCl3LkHDQC7BYDNAgCr0DkHDQCWXaLAUA6Aq/AipWFOqbqTgCqgxMJoO4IvAIrVhaGYTQaDcuK/H1rLE8gB5xIAHVH4BV4fGVhGEar1UrsBKBqOJEA6o7AK/BoZWEYhqZpiZ0ASIETCaDuCLwC+ZWFYRi1Wn3OC87ft8PyBLKQZbcYAKQg8GLjFxH+fm6GYc56AXIOFCDLbjEASEHgUn60svA/axIOh6V0AiCFLLvFACAFgUv50crCsqxKpVKpVFV8fEbOgSxk2S0GACkIXMorPkFTFHXWRp3ATgCqduFuMQDUGmlLOR9sFEV5vV7+/+h0On67Tngn4XCY76S67zwBjly4WwwAtUZUzp16g8mFt5wI6QSgOrLsFgOAFFjEAWpIlt1iAJACOQdQQ7LsFgOAFMg5gFqRZbcYACRCzgHUhCy7xQAgHa40AAAgGXIOAABIhpwDAACSIecAAIBkyDkAACAZcg4AAEiGnAMAAJIh5wAAgGTIOQAAINn/AG3gGlLBOfdOAAAAAElFTkSuQmCC" alt="" height="86" width="528" /></div></div></p><p style="margin-bottom:0pt; margin-top:0pt; ">&nbsp;<br /></p><p style="margin-left: 21pt; text-indent: 24pt; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style=" font-size:12.0000pt; font-family:'宋体'; ">设第</span><span style="font-size: 12pt; font-family: '宋体';">k个石子座标为x，第k-1个石子和第k个石子间距离足够大，则青蛙从两个石子间跳到第k个石子及之后的位置有：x、x+1、x+2、x+3&#8230;&#8230;x+t-1。如果我们能保证，将石子k-1和石子k之间的距离缩短（即减少状态）后，青蛙依然能跳到这些位置，则可以平移。而这一点我们可以通过在两个石子间保留1个最小公倍数单位长度得到保证。</span></p><p style="text-indent:-24.0000pt; margin-left:24.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-numeric; text-autospace:ideograph-other; text-align:justify; vertical-align:; "><span style=" font-size:12.0000pt; font-family:'宋体'; ">&#9314;注意特殊情况：当s=t时，只需考查石子是否是s的倍数即可。这种情况单独考查。</span></p><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: #000000; ">#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 />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">algorithm</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">排序和求最小值要用到此文件。</span><span style="color: #008000; "><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; ">int</span><span style="color: #000000; ">&nbsp;L,s,t,m,ans;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a[</span><span style="color: #000000; ">110</span><span style="color: #000000; ">];&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">保存石子位置&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;f[</span><span style="color: #000000; ">11000</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">};&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">f[x]表示青蛙跳到位置i最少踏的石子数&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;stone[</span><span style="color: #000000; ">11000</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">};&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">stone[x]表示位置x是否是石子，0表示不是，1表示是&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;solve()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;d(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">),k</span><span style="color: #000000; ">=</span><span style="color: #000000; ">s</span><span style="color: #000000; ">*</span><span style="color: #000000; ">t,x;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">d表示累加平移量，k表示s和t的公倍数&nbsp;</span><span style="color: #008000; "><br /></span><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;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; ">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; ">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[i]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">d</span><span style="color: #000000; ">-</span><span style="color: #000000; ">a[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">x表示第i个石子和第i-1个石子的距离&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">k)&nbsp;d</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">x</span><span style="color: #000000; ">-</span><span style="color: #000000; ">k;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">超过公倍数部分用作平移&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[i]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stone[a[i]]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">标记平移后位置是石子&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;stone[a[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; ">0</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">桥尾不是石子&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;f[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;<br />&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;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; ">a[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; ">t</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; ">)&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">考查桥上到桥尾的所有位置&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">105</span><span style="color: #000000; ">;&nbsp;&nbsp;&nbsp;<br />&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;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">s;j</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">t;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">在i的前一个位置中找一个经历石子最少的&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">j)&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">min(f[i],f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">j]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">stone[i];&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">加上当前位置石子数&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">101</span><span style="color: #000000; ">;<br />&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;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[m</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; ">a[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; ">t</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; ">)&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">在跳过桥后所有位置中找一个最小值&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">min(ans,f[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">ans</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;&nbsp;<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">L</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">s</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">t</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">m;<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;&nbsp;a[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; ">L;<br />&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;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; ">m;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">a[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;sort(a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,a</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; ">);&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">对桥中间石子位置排序，这上步必须要有&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(s</span><span style="color: #000000; ">==</span><span style="color: #000000; ">t)&nbsp;{&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">这种情况只需考查石子是否是石子的倍数即可&nbsp;</span><span style="color: #008000; "><br /></span><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;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; ">m;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&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;(a[i]</span><span style="color: #000000; ">%</span><span style="color: #000000; ">s</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">ans</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;solve();<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 />}</span></div><br /></div><img src ="http://www.cppblog.com/powerwater/aggbug/187391.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-08-16 17:15 <a href="http://www.cppblog.com/powerwater/articles/187391.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2008提高组第3题 传纸条</title><link>http://www.cppblog.com/powerwater/articles/186696.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 08 Aug 2012 15:02:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/186696.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/186696.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/186696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/186696.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/186696.html</trackback:ping><description><![CDATA[&nbsp; 
<p style="text-indent: 17.25pt" align="center"><strong><span style="font-size: 10pt; font-family: Georgia">3. </span></strong><strong><span style="font-size: 10pt; font-family: 宋体">传纸条</span></strong><strong><span style="font-size: 10pt; font-family: Georgia"></span></strong></p>
<p style="text-indent: 17.25pt" align="center"><strong><span style="font-size: 9pt; font-family: Georgia">(message.pas/c/cpp)</span></strong></p>
<p style="text-indent: 17.25pt" align="left"><span style="font-size: 9pt; font-family: 宋体">【问题描述】</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">小渊和小轩是好朋友也是同班同学，他们在一起总有谈不完的话题。一次素质拓展活动中，班上同学安排做成一个</span><span style="font-size: 9pt; font-family: Georgia">m</span><span style="font-size: 9pt; font-family: 宋体">行</span><span style="font-size: 9pt; font-family: Georgia">n</span><span style="font-size: 9pt; font-family: 宋体">列的矩阵，而小渊和小轩被安排在矩阵对角线的两端，因此，他们就无法直接交谈了。幸运的是，他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里，小渊坐在矩阵的左上角，坐标</span><span style="font-size: 9pt; font-family: Georgia">(1,1)</span><span style="font-size: 9pt; font-family: 宋体">，小轩坐在矩阵的右下角，坐标</span><span style="font-size: 9pt; font-family: Georgia">(m,n)</span><span style="font-size: 9pt; font-family: 宋体">。从小渊传到小轩的纸条只可以向下或者向右传递，从小轩传给小渊的纸条只可以向上或者向左传递。</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">在活动进行中，小渊希望给小轩传递一张纸条，同时希望小轩给他回复。班里每个同学都可以帮他们传递，但只会帮他们一次，也就是说如果此人在小渊递给小轩纸条的时候帮忙，那么在小轩递给小渊的时候就不会再帮忙。反之亦然。</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">还有一件事情需要注意，全班每个同学愿意帮忙的好感度有高有低（注意：小渊和小轩的好心程度没有定义，输入时用</span><span style="font-size: 9pt; font-family: Georgia">0</span><span style="font-size: 9pt; font-family: 宋体">表示），可以用一个</span><span style="font-size: 9pt; font-family: Georgia">0-100</span><span style="font-size: 9pt; font-family: 宋体">的自然数来表示，数越大表示越好心。小渊和小轩希望尽可能找好心程度高的同学来帮忙传纸条，即找到来回两条传递路径，使得这两条路径上同学的好心程度只和最大。现在，请你帮助小渊和小轩找到这样的两条路径。</span></p>
<p style="text-indent: 17.25pt" align="left"><span style="font-size: 9pt; font-family: 宋体">【输入】</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">输入文件</span><span style="font-size: 9pt; font-family: Georgia">message.in</span><span style="font-size: 9pt; font-family: 宋体">的第一行有</span><span style="font-size: 9pt; font-family: Georgia">2</span><span style="font-size: 9pt; font-family: 宋体">个用空格隔开的整数</span><span style="font-size: 9pt; font-family: Georgia">m</span><span style="font-size: 9pt; font-family: 宋体">和</span><span style="font-size: 9pt; font-family: Georgia">n</span><span style="font-size: 9pt; font-family: 宋体">，表示班里有</span><span style="font-size: 9pt; font-family: Georgia">m</span><span style="font-size: 9pt; font-family: 宋体">行</span><span style="font-size: 9pt; font-family: Georgia">n</span><span style="font-size: 9pt; font-family: 宋体">列（</span><span style="font-size: 9pt; font-family: Georgia">1&lt;=m,n&lt;=50</span><span style="font-size: 9pt; font-family: 宋体">）。</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">接下来的</span><span style="font-size: 9pt; font-family: Georgia">m</span><span style="font-size: 9pt; font-family: 宋体">行是一个</span><span style="font-size: 9pt; font-family: Georgia">m*n</span><span style="font-size: 9pt; font-family: 宋体">的矩阵，矩阵中第</span><span style="font-size: 9pt; font-family: Georgia">i</span><span style="font-size: 9pt; font-family: 宋体">行</span><span style="font-size: 9pt; font-family: Georgia">j</span><span style="font-size: 9pt; font-family: 宋体">列的整数表示坐在第</span><span style="font-size: 9pt; font-family: Georgia">i</span><span style="font-size: 9pt; font-family: 宋体">行</span><span style="font-size: 9pt; font-family: Georgia">j</span><span style="font-size: 9pt; font-family: 宋体">列的学生的好心程度。每行的</span><span style="font-size: 9pt; font-family: Georgia">n</span><span style="font-size: 9pt; font-family: 宋体">个整数之间用空格隔开。</span></p>
<p style="text-indent: 17.25pt" align="left"><span style="font-size: 9pt; font-family: 宋体">【输出】</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: 宋体">输出文件</span><span style="font-size: 9pt; font-family: Georgia">message.out</span><span style="font-size: 9pt; font-family: 宋体">共一行，包含一个整数，表示来回两条路上参与传递纸条的学生的好心程度之和的最大值。</span></p>
<p style="text-indent: 17.25pt" align="left"><span style="font-size: 9pt; font-family: 宋体">【输入输出样例】</span></p>
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 0cm; width: 213pt; padding-top: 0cm" width="284">
<p style="word-break: break-all" align="left"><strong><span style="font-size: 9pt; font-family: Arial">message.in</span></strong></p></td>
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 0cm; width: 213pt; padding-top: 0cm" width="284">
<p style="word-break: break-all" align="left"><strong><span style="font-size: 9pt; font-family: Arial">message.out</span></strong></p></td></tr>
<tr>
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 0cm; width: 213pt; padding-top: 0cm" width="284">
<p style="word-break: break-all" align="left"><span style="font-size: 9pt; font-family: Arial">3 3<br />0 3 9<br />2 8 5<br />5 7 0</span></p></td>
<td style="padding-right: 0cm; padding-left: 0cm; padding-bottom: 0cm; width: 213pt; padding-top: 0cm" width="284">
<p style="word-break: break-all" align="left"><span style="font-size: 9pt; font-family: Arial">34</span></p></td></tr></tbody></table>
<p style="text-indent: 17.25pt" align="left"><span style="font-size: 9pt; font-family: 宋体">【限制】</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt" align="left"><span style="font-size: 9pt; font-family: Georgia">30%</span><span style="font-size: 9pt; font-family: 宋体">的数据满足：</span><span style="font-size: 9pt; font-family: Georgia">1&lt;=</span><em><span style="font-size: 9pt; font-family: Georgia">m</span></em><span style="font-size: 9pt; font-family: Georgia">,</span><em><span style="font-size: 9pt; font-family: Georgia">n</span></em><span style="font-size: 9pt; font-family: Georgia">&lt;=10</span></p>
<p style="text-indent: 17.25pt; line-height: 15pt; " align="left"><span style="font-size: 9pt; font-family: Georgia">100%</span><span style="font-size: 9pt; font-family: 宋体">的数据满足：</span><span style="font-size: 9pt; font-family: Georgia">1&lt;=</span><em><span style="font-size: 9pt; font-family: Georgia">m</span></em><span style="font-size: 9pt; font-family: Georgia">,</span><em><span style="font-size: 9pt; font-family: Georgia">n</span></em><span style="font-size: 9pt; font-family: Georgia; ">&lt;=50<br /><br /></span></p><div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-image: initial; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 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 />-->#include&lt;fstream&gt;<br />#include&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; ">int</span>&nbsp;N(55);<br /><span style="color: #0000FF; ">int</span>&nbsp;a[N][N],f[2*N][N][N]={0};<br />ifstream&nbsp;cin("message.in");<br />ofstream&nbsp;cout("message.out");<br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;m,n;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;m&gt;&gt;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;i=1;i&lt;=m;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;j=1;j&lt;=n;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&gt;&gt;a[i][j];<br />&nbsp;&nbsp;&nbsp;&nbsp;f[2][1][1]=a[1][1];<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;k=3;k&lt;m+n;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;(<span style="color: #0000FF; ">int</span>&nbsp;x1=1;x1&lt;k;x1++)<br />&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;x2=x1+1;x2&lt;k;x2++)<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;&nbsp;&nbsp;&nbsp;&nbsp;f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1][x2]+a[x1][k-x1]+a[x2][k-x2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1-1][x2-1]+a[x1][k-x1]+a[x2][k-x2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1-1][x2]+a[x1][k-x1]+a[x2][k-x2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[k][x1][x2]=max(f[k][x1][x2],f[k-1][x1][x2-1]+a[x1][k-x1]+a[x2][k-x2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;f[m+n-1][m-1][m]&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}</div><span style="font-size: 9pt; font-family: Georgia; "><br /></span><p>&nbsp;</p><img src ="http://www.cppblog.com/powerwater/aggbug/186696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-08-08 23:02 <a href="http://www.cppblog.com/powerwater/articles/186696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>贝茜的晨练计划</title><link>http://www.cppblog.com/powerwater/articles/177213.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Sat, 02 Jun 2012 09:13:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/177213.html</guid><description><![CDATA[<div>&nbsp;&nbsp;&nbsp; 奶牛们打算通过锻炼来培养自己的运动细胞，作为其中的一员，贝茜选择的运动方式是每天进行N(1 &lt;= N &lt;= 10,000)分钟的晨跑。在每分钟的开始，贝茜会选择下一分钟是用来跑步还是休息。<br /><br />&nbsp;&nbsp;&nbsp; 贝茜的体力限制了她跑步的距离。更具体地，如果贝茜选择在第i分钟内跑步，她可以在这一分钟内跑D_i(1 &lt;= D_i &lt;= 1,000)米，并且她的疲劳度会增加1。不过，无论何时贝茜的疲劳度都不能超过M(1 &lt;= M &lt;= 500)。如果贝茜选择休息，那么她的疲劳度就会每分钟减少1，但她必须休息到疲劳度恢复到0为止。在疲劳度为0时休息的话，疲劳度不会再变动。晨跑开始时，贝茜的疲劳度为0。<br />&nbsp;&nbsp;&nbsp; 还有，在N分钟的锻炼结束时，贝茜的疲劳度也必须恢复到0，否则她将没有足够的精力来对付这一整天中剩下的事情。<br />&nbsp;&nbsp;&nbsp; 请你计算一下，贝茜最多能跑多少米。<br /><br />程序名: cowrun<br /><br />输入格式:<br /><br />* 第1行: 2个用空格隔开的整数：N 和 M<br /><br />* 第2..N+1行: 第i+1为1个整数：D_i<br /><br />输入样例 (cowrun.in):<br />5 2<br />5<br />3<br />4<br />2<br />10<br /><br />输出格式:<br />* 第1行: 输出1个整数，表示在满足所有限制条件的情况下，贝茜能跑的最大距离<br /><br />输出样例 (cowrun.out):<br />9<br /><br />输出说明:<br /><br />&nbsp;&nbsp;&nbsp; 贝茜在第1分钟内选择跑步（跑了5米），在第2分钟内休息，在第3分钟内跑<br />步（跑了4米），剩余的时间都用来休息。因为在晨跑结束时贝茜的疲劳度必须<br />为0，所以她不能在第5分钟内选择跑步。<br /><br />算法：f[i]表示前i分钟内从疲劳度为0开始的最大跑步距离（跑完后疲劳度恢复为0）。连续跑步j个单位时间，再连续休息j个单位时间。枚举j，计算d[i-2*j+1]到d[i-j]的和，再加上f[i-2*j]就是一个可能决策。<br /><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><img id="Code_Closed_Image_175120" onclick="this.style.display='none'; Code_Closed_Text_175120.style.display='none'; Code_Open_Image_175120.style.display='inline'; Code_Open_Text_175120.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" height="16" align="top" width="11"><img id="Code_Open_Image_175120" style="display: none" onclick="this.style.display='none'; Code_Open_Text_175120.style.display='none'; Code_Closed_Image_175120.style.display='inline'; Code_Closed_Text_175120.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" height="16" align="top" width="11"><span id="Code_Closed_Text_175120" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"></span><span id="Code_Open_Text_175120" style="display: none"><br /><!--<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; ">fstream</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; ">const</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">10001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;d[N],f[N],s[N];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">cowrun.in</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;ofstream&nbsp;cout(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">cowrun.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,m;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">n</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">m;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&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;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;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">d[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">s[i</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; ">d[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&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;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;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</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;(</span><span style="color: #0000FF; ">int</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</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">j</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">i;j</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; ">if</span><span style="color: #000000; ">&nbsp;(f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">s[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">j]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">j]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">f[i])&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">s[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">j]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">j];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">f[n]</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;<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 />}</span></span></div></div><img src ="http://www.cppblog.com/powerwater/aggbug/177213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2012-06-02 17:13 <a href="http://www.cppblog.com/powerwater/articles/177213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>P1088_1 滑雪</title><link>http://www.cppblog.com/powerwater/articles/159154.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 26 Oct 2011 13:22:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/159154.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/159154.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/159154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/159154.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/159154.html</trackback:ping><description><![CDATA[<div lang="en-US" class="ptt">滑雪</div>
<div class="plm">
<table align="center">
<tbody>
<tr>
<td><strong>Time Limit:</strong> 1000MS</td>
<td width="10"></td>
<td><strong>Memory Limit:</strong> 65536K</td></tr>
<tr>
<td><strong>Total Submissions:</strong> 51951</td>
<td width="10"></td>
<td><strong>Accepted:</strong> 18906</td></tr></tbody></table></div>
<p class="pst">Description</p>
<div lang="en-US" class="ptx">Michael喜欢滑雪百这并不奇怪， 因为滑雪的确很刺激。可是为了获得速度，滑的区域必须向下倾斜，而且当你滑到坡底，你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 <br /><pre> 1  2  3  4 5
<br />16 17 18 19 6
<br />15 24 25 20 7
<br />14 23 22 21 8
<br />13 12 11 10 9</pre><br />一个人可以从某个点滑向上下左右相邻四个点之一，当且仅当高度减小。在上面的例子中，一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上，这是最长的一条。</div>
<p class="pst">Input</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Code_Closed_Image_212117" onclick="this.style.display='none'; Code_Closed_Text_212117.style.display='none'; Code_Open_Image_212117.style.display='inline'; Code_Open_Text_212117.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_212117" onclick="this.style.display='none'; Code_Open_Text_212117.style.display='none'; Code_Closed_Image_212117.style.display='inline'; Code_Closed_Text_212117.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Code_Closed_Text_212117">code</span><span style="display: none" id="Code_Open_Text_212117"><br /><!--<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">cstdio</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">cstring</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">cstdlib</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">long</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">],len[</span><span style="color: #000000">101</span><span style="color: #000000">][</span><span style="color: #000000">101</span><span style="color: #000000">],r,c;<br /><br /></span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;dp(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;x1,</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;y1)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;i,x2,y2,max</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</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">-</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">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">,</span><span style="color: #000000">0</span><span style="color: #000000">,</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;(len[x1][y1])&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;len[x1][y1];&nbsp;&nbsp;&nbsp;&nbsp;<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">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x2</span><span style="color: #000000">=</span><span style="color: #000000">x1</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;&nbsp;&nbsp;&nbsp;y2</span><span style="color: #000000">=</span><span style="color: #000000">y1</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;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(x2</span><span style="color: #000000">&lt;</span><span style="color: #000000">1</span><span style="color: #000000">||</span><span style="color: #000000">x2</span><span style="color: #000000">&gt;</span><span style="color: #000000">r</span><span style="color: #000000">||</span><span style="color: #000000">y2</span><span style="color: #000000">&lt;</span><span style="color: #000000">1</span><span style="color: #000000">||</span><span style="color: #000000">y2</span><span style="color: #000000">&gt;</span><span style="color: #000000">c)&nbsp;</span><span style="color: #0000ff">continue</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(map[x2][y2]</span><span style="color: #000000">&lt;</span><span style="color: #000000">map[x1][y1]&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;dp(x2,y2)</span><span style="color: #000000">&gt;</span><span style="color: #000000">max)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max</span><span style="color: #000000">=</span><span style="color: #000000">len[x2][y2];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;len[x1][y1]</span><span style="color: #000000">=</span><span style="color: #000000">max</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;(max</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);<br />}&nbsp;&nbsp;&nbsp;<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">long</span><span style="color: #000000">&nbsp;i,j,k</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">,ans;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld%ld</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">r,</span><span style="color: #000000">&amp;</span><span style="color: #000000">c);<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">1</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">r;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">1</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;=</span><span style="color: #000000">c;j</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">map[i][j]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(len,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(len));<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<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">1</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">r;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">1</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;=</span><span style="color: #000000">c;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;dp(i,j);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000">=</span><span style="color: #000000">(len[i][j]</span><span style="color: #000000">&gt;</span><span style="color: #000000">ans</span><span style="color: #000000">?</span><span style="color: #000000">len[i][j]:ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld\n</span><span style="color: #000000">"</span><span style="color: #000000">,ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">system("pause");&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><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">0</span><span style="color: #000000">;<br />}</span></span></div>
<p class="pst"></p>
<div lang="en-US" class="ptx">输入的第一行表示区域的行数R和列数C(1 &lt;= R,C &lt;= 100)。下面是R行，每行有C个整数，代表高度h，0&lt;=h&lt;=10000。</div>
<p class="pst">Output</p>
<div lang="en-US" class="ptx">输出最长区域的长度。</div>
<p class="pst">Sample Input</p><pre class="sio">5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
</pre>
<p class="pst">Sample Output</p><pre class="sio">25</pre>
<p class="pst">Source</p>
<div lang="en-US" class="ptx"><a href="http://poj.org/searchproblem?field=source&amp;key=SHTSC+2002">SHTSC 2002</a><br /><br /></div><img src ="http://www.cppblog.com/powerwater/aggbug/159154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2011-10-26 21:22 <a href="http://www.cppblog.com/powerwater/articles/159154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POJ1088 滑雪</title><link>http://www.cppblog.com/powerwater/articles/159153.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 26 Oct 2011 13:11:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/159153.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/159153.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/159153.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/159153.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/159153.html</trackback:ping><description><![CDATA[<div lang="en-US" class="ptt">滑雪</div>
<div class="plm">
<table align="center">
<tbody>
<tr>
<td><strong>Time Limit:</strong> 1000MS</td>
<td width="10"></td>
<td><strong>Memory Limit:</strong> 65536K</td></tr>
<tr>
<td><strong>Total Submissions:</strong> 51950</td>
<td width="10"></td>
<td><strong>Accepted:</strong> 18905</td></tr></tbody></table></div>
<p class="pst">Description</p>
<div lang="en-US" class="ptx">Michael喜欢滑雪百这并不奇怪， 因为滑雪的确很刺激。可是为了获得速度，滑的区域必须向下倾斜，而且当你滑到坡底，你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 <br /><pre> 1  2  3  4 5
<br />16 17 18 19 6
<br />15 24 25 20 7
<br />14 23 22 21 8
<br />13 12 11 10 9</pre><br />一个人可以从某个点滑向上下左右相邻四个点之一，当且仅当高度减小。在上面的例子中，一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上，这是最长的一条。</div>
<p class="pst">Input</p>
<div lang="en-US" class="ptx">输入的第一行表示区域的行数R和列数C(1 &lt;= R,C &lt;= 100)。下面是R行，每行有C个整数，代表高度h，0&lt;=h&lt;=10000。</div>
<p class="pst">Output</p>
<div lang="en-US" class="ptx">输出最长区域的长度。</div>
<p class="pst">Sample Input</p><pre class="sio">5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
</pre>
<p class="pst">Sample Output</p><pre class="sio">25</pre>
<p class="pst">Source</p>
<div lang="en-US" class="ptx"><a href="http://poj.org/searchproblem?field=source&amp;key=SHTSC+2002">SHTSC 2002</a><br />&nbsp;
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img id="Code_Closed_Image_211057" onclick="this.style.display='none'; Code_Closed_Text_211057.style.display='none'; Code_Open_Image_211057.style.display='inline'; Code_Open_Text_211057.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: none" id="Code_Open_Image_211057" onclick="this.style.display='none'; Code_Open_Text_211057.style.display='none'; Code_Closed_Image_211057.style.display='inline'; Code_Closed_Text_211057.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Code_Closed_Text_211057">code:</span><span style="display: none" id="Code_Open_Text_211057"><br /><!--<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">cstdio</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 />#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">algorithm</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />#include</span><span style="color: #000000">&lt;</span><span style="color: #000000">cstring</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">struct</span><span style="color: #000000">&nbsp;area<br />{<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;h,x,y;<br />};<br />area&nbsp;info[</span><span style="color: #000000">10001</span><span style="color: #000000">];<br /></span><span style="color: #0000ff">long</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">],len[</span><span style="color: #000000">101</span><span style="color: #000000">][</span><span style="color: #000000">101</span><span style="color: #000000">],r,c;<br /><br /></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;comp(</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;area&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">x,</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;area&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;x.h</span><span style="color: #000000">&lt;</span><span style="color: #000000">y.h;<br />}<br /><br /><br /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;value(</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;k)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;i,x1,y1,x2,y2,max</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</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">-</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">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">,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">1</span><span style="color: #000000">};<br />&nbsp;&nbsp;&nbsp;&nbsp;x1</span><span style="color: #000000">=</span><span style="color: #000000">info[k].x;<br />&nbsp;&nbsp;&nbsp;&nbsp;y1</span><span style="color: #000000">=</span><span style="color: #000000">info[k].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">4</span><span style="color: #000000">;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x2</span><span style="color: #000000">=</span><span style="color: #000000">x1</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;&nbsp;&nbsp;&nbsp;y2</span><span style="color: #000000">=</span><span style="color: #000000">y1</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;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(x2</span><span style="color: #000000">&lt;</span><span style="color: #000000">1</span><span style="color: #000000">||</span><span style="color: #000000">x2</span><span style="color: #000000">&gt;</span><span style="color: #000000">r</span><span style="color: #000000">||</span><span style="color: #000000">y2</span><span style="color: #000000">&lt;</span><span style="color: #000000">1</span><span style="color: #000000">||</span><span style="color: #000000">y2</span><span style="color: #000000">&gt;</span><span style="color: #000000">c)&nbsp;</span><span style="color: #0000ff">continue</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(map[x2][y2]</span><span style="color: #000000">&lt;</span><span style="color: #000000">map[x1][y1]</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">len[x2][y2]</span><span style="color: #000000">&gt;</span><span style="color: #000000">max)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max</span><span style="color: #000000">=</span><span style="color: #000000">len[x2][y2];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;len[x1][y1]</span><span style="color: #000000">=</span><span style="color: #000000">max</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">;<br />}&nbsp;&nbsp;&nbsp;<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">long</span><span style="color: #000000">&nbsp;i,j,k</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">,ans;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld%ld</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">&amp;</span><span style="color: #000000">r,</span><span style="color: #000000">&amp;</span><span style="color: #000000">c);<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">1</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">r;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">1</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;=</span><span style="color: #000000">c;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;scanf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld</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;&nbsp;&nbsp;&nbsp;&nbsp;info[</span><span style="color: #000000">++</span><span style="color: #000000">k].x</span><span style="color: #000000">=</span><span style="color: #000000">i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info[k].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;info[k].h</span><span style="color: #000000">=</span><span style="color: #000000">map[i][j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(len,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #0000ff">sizeof</span><span style="color: #000000">(len));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sort(info</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,info</span><span style="color: #000000">+</span><span style="color: #000000">k</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,comp);<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">1</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">k;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;value(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<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">1</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;=</span><span style="color: #000000">r;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">1</span><span style="color: #000000">;j</span><span style="color: #000000">&lt;=</span><span style="color: #000000">c;j</span><span style="color: #000000">++</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000">=</span><span style="color: #000000">(len[i][j]</span><span style="color: #000000">&gt;</span><span style="color: #000000">ans</span><span style="color: #000000">?</span><span style="color: #000000">len[i][j]:ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000">"</span><span style="color: #000000">%ld\n</span><span style="color: #000000">"</span><span style="color: #000000">,ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">system("pause");</span><span style="color: #008000"><br /></span><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">0</span><span style="color: #000000">;<br />}&nbsp;</span></span></div><br /></div> <img src ="http://www.cppblog.com/powerwater/aggbug/159153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/powerwater/" target="_blank">龙在江湖</a> 2011-10-26 21:11 <a href="http://www.cppblog.com/powerwater/articles/159153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>