﻿<?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-文章分类-竞赛题解_NOIP</title><link>http://www.cppblog.com/powerwater/category/18005.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 30 Apr 2014 08:01:44 GMT</lastBuildDate><pubDate>Wed, 30 Apr 2014 08:01:44 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>NOIP2009 提高组 第3题 最优贸易</title><link>http://www.cppblog.com/powerwater/articles/197257.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Mon, 14 Jan 2013 03:55:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/197257.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/197257.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/197257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/197257.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/197257.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">分析：运用两次spfa，求出每个城市最大卖出价格和最小买入价格差值，求个最大值就ok了。<br />#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; ">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; ">queue</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">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; ">100008</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;node<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;adj;<br />&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">next;<br />};<br />node&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">g1[N]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">},</span><span style="color: #000000; ">*</span><span style="color: #000000; ">g2[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; ">int</span><span style="color: #000000; ">&nbsp;n,m,buy[N],sell[N],price[N];<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;inq[N];<br />queue</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;q;<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;init()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x,y,z;<br />&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">p;<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; ">m;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;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">x,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">y,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">z);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">(node);&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y;&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g1[x];&nbsp;g1[x]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">(node);&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g2[y];&nbsp;g2[y]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(z</span><span style="color: #000000; ">==</span><span style="color: #000000; ">2</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;p</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">(node);&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g1[y];&nbsp;g1[y]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">(node);&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y;&nbsp;p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g2[x];&nbsp;g2[x]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;spfa1()&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">求最小买入价格</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(buy</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,buy</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; ">0x7fffffff</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(inq</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,inq</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; ">0</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;buy[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">price[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;q.push(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;inq[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</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; ">while</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">q.empty())<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k</span><span style="color: #000000; ">=</span><span style="color: #000000; ">q.front();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inq[k]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g1[k];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(p)<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;(min(price[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj],buy[k])</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">buy[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj])<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;buy[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">min(price[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj],buy[k]);<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;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">inq[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj])<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;q.push(p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inq[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj]</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;&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;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;spfa2()&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">求最大卖出价格</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k;<br />&nbsp;&nbsp;&nbsp;&nbsp;node&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">p;<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(sell</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,sell</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; ">0</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(inq</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,inq</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; ">0</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;sell[n]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">price[n];<br />&nbsp;&nbsp;&nbsp;&nbsp;q.push(n);<br />&nbsp;&nbsp;&nbsp;&nbsp;inq[n]</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; ">while</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">q.empty())<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k</span><span style="color: #000000; ">=</span><span style="color: #000000; ">q.front();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p</span><span style="color: #000000; ">=</span><span style="color: #000000; ">g2[k];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(p)<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;(max(price[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj],sell[k])</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">sell[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj])<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;sell[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(price[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj],sell[k]);<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;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">inq[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj])<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;q.push(p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inq[p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">adj]</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;}<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;p</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">next;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">trade.in</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,stdin);<br />&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">trade.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">w</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,stdout);<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">n,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">m);<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;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">price[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;init();<br />&nbsp;&nbsp;&nbsp;&nbsp;spfa1();<br />&nbsp;&nbsp;&nbsp;&nbsp;spfa2();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ans(</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(sell[i]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">buy[i]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">ans)&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sell[i]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">buy[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,ans);<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 /><br /></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/197257.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-01-14 11:55 <a href="http://www.cppblog.com/powerwater/articles/197257.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>NOIP2012 普及组 第2题 寻宝</title><link>http://www.cppblog.com/powerwater/articles/195116.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 13 Nov 2012 07:51:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/195116.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/195116.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/195116.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/195116.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/195116.html</trackback:ping><description><![CDATA[直接模拟，在找上楼房间时，要用到取模，以做优化。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; "></span><span style="color: #000000; "><div>#include&lt;iostream&gt;<br />#include&lt;cstdio&gt;<br />using namespace std;<br />const int N(10008),M(108),MODN=20123;<br />int a[N][M],f[N][M],sum[N]={0};<br />int main()<br />{<br />&nbsp;&nbsp;&nbsp; freopen("treasure.in","r",stdin);<br />&nbsp;&nbsp;&nbsp; freopen("treasure.out","w",stdout);<br />&nbsp;&nbsp;&nbsp; int n,m,i,j,k;<br />&nbsp;&nbsp;&nbsp; scanf("%d%d",&amp;n,&amp;m);<br />&nbsp;&nbsp;&nbsp; for (i=1;i&lt;=n;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j=0;j&lt;m;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scanf("%d%d",&amp;f[i][j],&amp;a[i][j]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (f[i][j]) sum[i]++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; int ans=0;<br />&nbsp;&nbsp;&nbsp; scanf("%d",&amp;j);<br />&nbsp;&nbsp;&nbsp; for (i=1;i&lt;=n;i++)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ans=(ans+a[i][j])%MODN;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[i][j]%=sum[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (a[i][j]==0) a[i][j]=sum[i]; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (k=a[i][j];k&gt;0;)<br />&nbsp;&nbsp;&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; if (f[i][j])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (k&gt;0) j=(j+1)%m; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; printf("%d\n",ans);<br />&nbsp;&nbsp;&nbsp; return 0;<br />}</div></span><span style="color: #000000; "></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/195116.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-13 15:51 <a href="http://www.cppblog.com/powerwater/articles/195116.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2012 普及组 第1题 质因数分解</title><link>http://www.cppblog.com/powerwater/articles/195115.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 13 Nov 2012 07:47:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/195115.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/195115.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/195115.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/195115.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/195115.html</trackback:ping><description><![CDATA[找到平方根内的因子，就可以找到另外一个质因子。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">cmath</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#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 /></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 /><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;solve(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n)<br />{<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; ">2</span><span style="color: #000000; ">,k</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">)(sqrt(n));i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">k;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;(n</span><span style="color: #000000; ">%</span><span style="color: #000000; ">i</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">/</span><span style="color: #000000; ">i;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;n;<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">prime.in</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">r</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,stdin);&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">ifstream&nbsp;cin("prime.in");</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">prime.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">"</span><span style="color: #000000; ">w</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,stdout);&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">ofstream&nbsp;cout("prime.out");</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">n;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">solve(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 />}<br /></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/195115.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-13 15:47 <a href="http://www.cppblog.com/powerwater/articles/195115.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>NOIP2008 普及组 第2题 排座椅</title><link>http://www.cppblog.com/powerwater/articles/186601.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 07 Aug 2012 13:38:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/186601.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/186601.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/186601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/186601.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/186601.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><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 /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />#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 /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></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 /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></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">1005</span><span style="color: #000000">);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">struct</span><span style="color: #000000">&nbsp;node<br /><img id="Codehighlighter1_92_107_Open_Image" onclick="this.style.display='none'; Codehighlighter1_92_107_Open_Text.style.display='none'; Codehighlighter1_92_107_Closed_Image.style.display='inline'; Codehighlighter1_92_107_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_92_107_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_92_107_Closed_Text.style.display='none'; Codehighlighter1_92_107_Open_Image.style.display='inline'; Codehighlighter1_92_107_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_92_107_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_92_107_Open_Text"><span style="color: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;No,num;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" />node&nbsp;row[N],col[N];<br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;comp1(</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;node&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;node&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">y)<br /><img id="Codehighlighter1_170_193_Open_Image" onclick="this.style.display='none'; Codehighlighter1_170_193_Open_Text.style.display='none'; Codehighlighter1_170_193_Closed_Image.style.display='inline'; Codehighlighter1_170_193_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_170_193_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_170_193_Closed_Text.style.display='none'; Codehighlighter1_170_193_Open_Image.style.display='inline'; Codehighlighter1_170_193_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_170_193_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_170_193_Open_Text"><span style="color: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;x.num</span><span style="color: #000000">&gt;</span><span style="color: #000000">y.num;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;comp2(</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;node&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;node&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">y)<br /><img id="Codehighlighter1_235_256_Open_Image" onclick="this.style.display='none'; Codehighlighter1_235_256_Open_Text.style.display='none'; Codehighlighter1_235_256_Closed_Image.style.display='inline'; Codehighlighter1_235_256_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_235_256_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_235_256_Closed_Text.style.display='none'; Codehighlighter1_235_256_Open_Image.style.display='inline'; Codehighlighter1_235_256_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_235_256_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_235_256_Open_Text"><span style="color: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;x.No</span><span style="color: #000000">&lt;</span><span style="color: #000000">y.No;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main()<br /><img id="Codehighlighter1_269_835_Open_Image" onclick="this.style.display='none'; Codehighlighter1_269_835_Open_Text.style.display='none'; Codehighlighter1_269_835_Closed_Image.style.display='inline'; Codehighlighter1_269_835_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_269_835_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_269_835_Closed_Text.style.display='none'; Codehighlighter1_269_835_Open_Image.style.display='inline'; Codehighlighter1_269_835_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_269_835_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_269_835_Open_Text"><span style="color: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;m,n,k,L,d,x1,y1,x2,y2;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;cin</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">n</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">k</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">d;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;row[i].No</span><span style="color: #000000">=</span><span style="color: #000000">i,row[i].num</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;col[i].No</span><span style="color: #000000">=</span><span style="color: #000000">i,col[i].num</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">d;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br /><img id="Codehighlighter1_444_544_Open_Image" onclick="this.style.display='none'; Codehighlighter1_444_544_Open_Text.style.display='none'; Codehighlighter1_444_544_Closed_Image.style.display='inline'; Codehighlighter1_444_544_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_444_544_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_444_544_Closed_Text.style.display='none'; Codehighlighter1_444_544_Open_Image.style.display='inline'; Codehighlighter1_444_544_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_444_544_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_444_544_Open_Text"><span style="color: #000000">{<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">x1</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">y1</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">x2</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">y2;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(x1</span><span style="color: #000000">==</span><span style="color: #000000">x2)&nbsp;col[min(y1,y2)].num</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(y1</span><span style="color: #000000">==</span><span style="color: #000000">y2)&nbsp;row[min(x1,x2)].num</span><span style="color: #000000">++</span><span style="color: #000000">;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sort(row</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,row</span><span style="color: #000000">+</span><span style="color: #000000">m,comp1);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sort(row</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,row</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">,comp2);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">k;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">row[i].No</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">;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">row[k].No</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sort(col</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,col</span><span style="color: #000000">+</span><span style="color: #000000">n,comp1);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;sort(col</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,col</span><span style="color: #000000">+</span><span style="color: #000000">L</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">,comp2);<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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">L;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">col[i].No</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">;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">col[L].No</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">cin.get();cin.get();cin.get();</span><span style="color: #008000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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 /><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br /><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div><br /><img src ="http://www.cppblog.com/powerwater/aggbug/186601.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-07 21:38 <a href="http://www.cppblog.com/powerwater/articles/186601.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2004提高组第2题 合并果子</title><link>http://www.cppblog.com/powerwater/articles/184711.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Mon, 23 Jul 2012 03:46:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/184711.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/184711.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/184711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/184711.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/184711.html</trackback:ping><description><![CDATA[<div><h2 align="center"><span style="mso-spacerun:'yes'; font-weight:bold; font-size:16.0000pt; font-family:'Arial'; ">合并果子</span></h2><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; "><span style="mso-spacerun:'yes'; font-weight:bold; font-size:12.0000pt; font-family:'Times New Roman'; ">(fruit.pas/dpr/c/cpp)</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">问题描述</span><span style="font-size: 10.5pt; font-family: '宋体';">】</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">在一个果园里</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">，多多已经将所有的果子打了下来，而且按果子</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的不同</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">种类</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">分成了不同的堆</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">多多</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">决定把所有的果子合成一堆</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">每一次合并，多多可以把两堆果子合并到一起，消耗的体力等于两堆果子的重量之和。可以看出，所有的果子经过n-1次合并之后，就只剩下一堆了。多多在合并果子时总共</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">消耗</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">体力</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">等于</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">每次合并所耗体力之和。</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">因为还要花大力气把这些果子搬回家，所以多多在合并果子时</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">要尽可能</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">地</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">节省体力。假定每个果子重量都为1</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">，并且</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">已知果子</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">种类数和每种果子的数目，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">你</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">的任务是设计出合并的次序方案，使多多耗费</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">体力最</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">少，并</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">输出</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">这个最小的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">体力耗费</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">值</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">。</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">例如有3种果子</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">数目依次为1</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">2</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">9</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。可以先</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">将&nbsp;1、2堆合并，新堆数目为3，耗费体力为3</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">接着，将新堆与原先的第三堆合并，又得到新的堆，数目为12</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">耗费体力为&nbsp;12</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">所以</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">多多总共</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">耗费体力=3+12=15</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">可以证明15为最小</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">体力耗费</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">值。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">输入</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">文件】</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">输入</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">文件</span><span style="mso-spacerun:'yes'; font-weight:bold; font-size:10.5000pt; font-family:'Times New Roman'; ">fruit.in</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">包括两行，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">第一行是一个整数n</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">（</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">1</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">&lt;=</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">n</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">&lt;=</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">30000</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">）</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">表示</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">果子</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">的</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">种类数。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">第二</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">行</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">包含</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">n个整数，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">用空格分隔，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">第i个整数a</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; vertical-align:sub; ">i</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">（</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">1</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">&lt;=</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">a</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; vertical-align:sub; ">i</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">&lt;=</span>&nbsp;<span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">20000</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">）是</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">第</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">i种</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">果子的数目。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">输出</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">文件】</span></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">输出文件</span><span style="mso-spacerun:'yes'; font-weight:bold; font-size:10.5000pt; font-family:'Times New Roman'; ">fruit.out</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">包括一行，这一行只</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">包含一个整数，</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">也就是</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">最小的体力耗费值。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">输入数据保证这个值小于2</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; vertical-align:super; ">31</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">样例输入</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">3</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">1&nbsp;2&nbsp;9</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">样例输出</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">15</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">【</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">数据规模</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">】</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Times New Roman'; ">对于30%的数据，保证有n&nbsp;&lt;=&nbsp;100；</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#000000; font-size:10.5000pt; font-family:'Times New Roman'; ">对于50%的数据，保证有n&nbsp;&lt;=&nbsp;5000；</span></p><p style="margin-bottom: 0pt; margin-top: 0pt;"><span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';">对于全部的数据，保证有n&nbsp;&lt;=&nbsp;30000。</span></p><p style="margin-bottom: 0pt; margin-top: 0pt;"><br /><span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"></span></p><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">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; ">30005</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;a[N],b[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; ">fruit.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; ">fruit.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,i,j,k,m,c;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;x,ans(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">);&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;fill(a,a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">N,</span><span style="color: #000000; ">0x7fffffff</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;fill(b,b</span><span style="color: #000000; ">+</span><span style="color: #000000; ">N,</span><span style="color: #000000; ">0x7fffffff</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; ">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;sort(a,a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">n);&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; ">j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,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;k</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<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; ">a[i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];&nbsp;c</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; ">if</span><span style="color: #000000; ">&nbsp;(a[i]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">b[j]</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">x)&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; ">b[j];&nbsp;c</span><span style="color: #000000; ">=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(b[j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">b[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">x)&nbsp;{&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">b[j]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">b[j</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];&nbsp;c</span><span style="color: #000000; ">=</span><span style="color: #000000; ">3</span><span style="color: #000000; ">;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">switch</span><span style="color: #000000; ">&nbsp;(c)<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; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:&nbsp;b[m</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;&nbsp;i</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;&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;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">:&nbsp;b[m</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;&nbsp;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">:&nbsp;b[m</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x;&nbsp;j</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">b[m</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;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;<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></div><img src ="http://www.cppblog.com/powerwater/aggbug/184711.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-07-23 11:46 <a href="http://www.cppblog.com/powerwater/articles/184711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2010提高组 第3题 关押罪犯</title><link>http://www.cppblog.com/powerwater/articles/179594.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Thu, 21 Jun 2012 04:17:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/179594.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/179594.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/179594.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/179594.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/179594.html</trackback:ping><description><![CDATA[<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">20001</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;M(</span><span style="color: #000000; ">100001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;node{&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a,b,c;&nbsp;};<br />node&nbsp;g[M];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;fri[N],ene[N]</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; ">&nbsp;fri:friend&nbsp;ene:enemy&nbsp;</span><span style="color: #008000; "><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;node&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;node&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.c</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">y.c;<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;f(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(fri[x]</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">x)&nbsp;x</span><span style="color: #000000; ">=</span><span style="color: #000000; ">fri[x];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;x;<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;merge(</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;k1,k2;<br />&nbsp;&nbsp;&nbsp;&nbsp;k1</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(x);<br />&nbsp;&nbsp;&nbsp;&nbsp;k2</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(y);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k1</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">k2)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fri[x]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">fri[y]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">fri[k2]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">k1;<br />}<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; ">prison.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; ">prison.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,k1,k2,k3,k4;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;found(</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">);<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;</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; ">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; ">g[i].a</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">g[i].b</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">g[i].c;<br />&nbsp;&nbsp;&nbsp;&nbsp;sort(g,g</span><span style="color: #000000; ">+</span><span style="color: #000000; ">m,comp);&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; ">)&nbsp;fri[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i;<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; ">m;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;k1</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(g[i].a);&nbsp;&nbsp;&nbsp;k2</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(g[i].b);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k1</span><span style="color: #000000; ">==</span><span style="color: #000000; ">k2)&nbsp;{&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">g[i].c</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;found</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k3</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ene[g[i].a];&nbsp;k4</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ene[g[i].b];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k3</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;{&nbsp;merge(g[i].b,k3);&nbsp;ene[g[i].a]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(k3);&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;ene[g[i].a]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">k2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(k4</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;{&nbsp;merge(g[i].a,k4);&nbsp;ene[g[i].b]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(k4);&nbsp;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;ene[g[i].b]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">k1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<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; ">found)&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: #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 />}</span></div><img src ="http://www.cppblog.com/powerwater/aggbug/179594.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-21 12:17 <a href="http://www.cppblog.com/powerwater/articles/179594.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2010提高组 第2题 乌龟棋</title><link>http://www.cppblog.com/powerwater/articles/179491.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 20 Jun 2012 03:22:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/179491.html</guid><description><![CDATA[<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">=</span><span style="color: #000000; ">45</span><span style="color: #000000; ">;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;f[N][N][N][N]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">0</span><span style="color: #000000; ">},score[</span><span style="color: #000000; ">400</span><span style="color: #000000; ">],num[</span><span style="color: #000000; ">5</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; ">};<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,m,i,x;<br />&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">tortoise.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; ">tortoise.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<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;</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; ">)&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">score[i];<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; ">m;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; ">x;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num[x]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&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; ">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; ">score[</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;a</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;a</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">num[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];a</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;b</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;b</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">num[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">];b</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;c</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;c</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">num[</span><span style="color: #000000; ">3</span><span style="color: #000000; ">];c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;d</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;d</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">num[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">];d</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">b</span><span style="color: #000000; ">*</span><span style="color: #000000; ">2</span><span style="color: #000000; ">+</span><span style="color: #000000; ">c</span><span style="color: #000000; ">*</span><span style="color: #000000; ">3</span><span style="color: #000000; ">+</span><span style="color: #000000; ">d</span><span style="color: #000000; ">*</span><span style="color: #000000; ">4</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; ">if</span><span style="color: #000000; ">&nbsp;(a</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;f[a][b][c][d]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(f[a</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][b][c][d]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">score[i],f[a][b][c][d]);&nbsp;<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; ">if</span><span style="color: #000000; ">&nbsp;(b</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;f[a][b][c][d]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(f[a][b</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][c][d]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">score[i],f[a][b][c][d]);&nbsp;<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; ">if</span><span style="color: #000000; ">&nbsp;(c</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;f[a][b][c][d]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(f[a][b][c</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][d]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">score[i],f[a][b][c][d]);&nbsp;<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; ">if</span><span style="color: #000000; ">&nbsp;(d</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;f[a][b][c][d]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(f[a][b][c][d</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; ">score[i],f[a][b][c][d]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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[num[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]][num[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">]][num[</span><span style="color: #000000; ">3</span><span style="color: #000000; ">]][num[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">]]</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></div><img src ="http://www.cppblog.com/powerwater/aggbug/179491.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-20 11:22 <a href="http://www.cppblog.com/powerwater/articles/179491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2010提高组 第1题 机器翻译</title><link>http://www.cppblog.com/powerwater/articles/179490.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 20 Jun 2012 03:20:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/179490.html</guid><description><![CDATA[<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">queue</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; ">1001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;used[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; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;queue</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">&nbsp;q;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,m,word,sum</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">translate.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; ">translate.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</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; ">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; ">)<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; ">word;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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; ">used[word])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.push(word);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used[word]</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;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(q.size()</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">m)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used[q.front()]</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q.pop();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">sum</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}</span></div><img src ="http://www.cppblog.com/powerwater/aggbug/179490.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-20 11:20 <a href="http://www.cppblog.com/powerwater/articles/179490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2011普及组 第3题 瑞士轮解题报告</title><link>http://www.cppblog.com/powerwater/articles/177707.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 05 Jun 2012 15:00:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/177707.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/177707.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/177707.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/177707.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/177707.html</trackback:ping><description><![CDATA[每次都搞快排，看数据，应该过不了。<br />如果对归并排序不陌生，那这道题应该没啥问题。第一次排序后，对每轮比赛中输和赢的分成两个序列，这两个序列必然有序，归并一次就够了。时间复杂度：nlogn+r*n。<br />代码：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">long</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">200001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;node<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;No,shili,score;<br />};<br />node&nbsp;a[N],b[N],c[N];<br /></span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;n,r,q;<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;node&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;node&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x.score</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">y.score)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(x.score</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">y.score);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;(x.No</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">y.No);<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;deal()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;i,j,k,j1,k1;<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; ">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; ">if</span><span style="color: #000000; ">&nbsp;(a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i].shili</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].shili)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i].score</span><span style="color: #000000; ">++</span><span style="color: #000000; ">,b[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i],c[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].score</span><span style="color: #000000; ">++</span><span style="color: #000000; ">,b[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">],c[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">i];<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; ">j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">k</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</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">k</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;a[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(comp(b[j],c[k])</span><span style="color: #000000; ">?</span><span style="color: #000000; ">b[j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]:c[k</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n)&nbsp;a[i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">b[j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(k</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n)&nbsp;a[i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">c[k</span><span style="color: #000000; ">++</span><span style="color: #000000; ">];<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">swiss.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; ">swiss.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<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; ">r</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">q;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">long</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</span><span style="color: #000000; ">+</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;{&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">a[i].score;&nbsp;&nbsp;&nbsp;a[i].No</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">long</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</span><span style="color: #000000; ">+</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].shili;<br />&nbsp;&nbsp;&nbsp;&nbsp;sort(a,a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">2</span><span style="color: #000000; ">*</span><span style="color: #000000; ">n,comp);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">long</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; ">r;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)&nbsp;deal();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">a[q</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">].No</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></div><img src ="http://www.cppblog.com/powerwater/aggbug/177707.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-05 23:00 <a href="http://www.cppblog.com/powerwater/articles/177707.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2011 day2 第2题 聪明的质监员 解题报告</title><link>http://www.cppblog.com/powerwater/articles/177090.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Fri, 01 Jun 2012 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/177090.html</guid><description><![CDATA[二分枚举W。<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; ">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 />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cmath</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; ">long</span><span style="color: #000000; ">&nbsp;N(</span><span style="color: #000000; ">200001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;n,m,maxw(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">),w[N],v[N],L[N],R[N];<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;s,ans,sum[N],sumv[N];<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(</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;W)&nbsp;&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;sum[</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sumv[</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; ">long</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;w[i]</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">W</span><span style="color: #000000; ">?</span><span style="color: #000000; ">(sum[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sum[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; ">1</span><span style="color: #000000; ">,sumv[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sumv[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; ">v[i]):(sum[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sum[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">],sumv[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">sumv[i</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; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;t(</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; ">long</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; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">(sum[R[i]]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sum[L[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; ">(sumv[R[i]]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">sumv[L[i]</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;t;<br />}<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; ">long</span><span style="color: #000000; ">&nbsp;low,mid,high;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;now;<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0x7fffffffffffffffll;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(low</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,high</span><span style="color: #000000; ">=</span><span style="color: #000000; ">maxw;low</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">high;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mid</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(low</span><span style="color: #000000; ">+</span><span style="color: #000000; ">high)</span><span style="color: #000000; ">/</span><span style="color: #000000; ">2</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">f(mid);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(abs(now</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s)</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">ans)&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">abs(now</span><span style="color: #000000; ">-</span><span style="color: #000000; ">s);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(now</span><span style="color: #000000; ">==</span><span style="color: #000000; ">s)&nbsp;</span><span style="color: #0000FF; ">return</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;(now</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s)&nbsp;high</span><span style="color: #000000; ">=</span><span style="color: #000000; ">mid</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; ">else</span><span style="color: #000000; ">&nbsp;low</span><span style="color: #000000; ">=</span><span style="color: #000000; ">mid</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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; ">qc.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; ">qc.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;<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; ">s;&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; ">long</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;{&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">w[i]</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">v[i];&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(w[i]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">maxw)&nbsp;maxw</span><span style="color: #000000; ">=</span><span style="color: #000000; ">w[i];&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">long</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; ">L[i]</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">R[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;solve();<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;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}</span></div><img src ="http://www.cppblog.com/powerwater/aggbug/177090.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-01 16:51 <a href="http://www.cppblog.com/powerwater/articles/177090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2011提高组day2 第1题 计算系数 解题报告</title><link>http://www.cppblog.com/powerwater/articles/176776.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Wed, 30 May 2012 08:14:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/176776.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/176776.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/176776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/176776.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/176776.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000;">两个知识点：<br />1. 数据巨大，不能等到求出结果再取余。a*b%c=(a%c)*(b%c)%c<br />2. 利用组合公式：c(n,m)=c(n-1,m)+c(n-1,m-1)<br />3. 记忆化，否则时间耗不起。<br /><br />代码：<br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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; ">10007</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;ans(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">),c[</span><span style="color: #000000; ">1001</span><span style="color: #000000; ">][</span><span style="color: #000000; ">1001</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;f1(</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; ">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; ">y;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ans</span><span style="color: #000000; ">*</span><span style="color: #000000; ">(x</span><span style="color: #000000; ">%</span><span style="color: #000000; ">N)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">N;<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;com(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(c[n][x]</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;c[n][x];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;<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; ">x</span><span style="color: #000000; ">||</span><span style="color: #000000; ">x</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;c[n][x]</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; ">else</span><span style="color: #000000; ">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x</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; ">)&nbsp;c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x</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; ">com(n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,x</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; ">N;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x]</span><span style="color: #000000; ">==-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">com(n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,x)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">N;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;c[n][x]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">(c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x</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; ">c[n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][x])</span><span style="color: #000000; ">%</span><span style="color: #000000; ">N;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<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; ">factor.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; ">factor.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a,b,k,n,m;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">a</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">b</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">k</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;f1(a,k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">m);<br />&nbsp;&nbsp;&nbsp;&nbsp;f1(b,m);<br />&nbsp;&nbsp;&nbsp;&nbsp;m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">min(m,k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">m);<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; ">k;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; ">0</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;c[i][j]</span><span style="color: #000000; ">=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">ans</span><span style="color: #000000; ">*</span><span style="color: #000000; ">com(k,m)</span><span style="color: #000000; ">%</span><span style="color: #000000; ">N;<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;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;cin.close();<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 /><span style="color: #000000;"></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/176776.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-05-30 16:14 <a href="http://www.cppblog.com/powerwater/articles/176776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2011提高组day1 第2题 选择客栈</title><link>http://www.cppblog.com/powerwater/articles/176675.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Tue, 29 May 2012 16:51:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/176675.html</guid><description><![CDATA[有点动归味道，想清楚了，超简单。<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #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 />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">numeric</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; ">200001</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;color[N],consume[N],color_n[</span><span style="color: #000000; ">51</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; ">},color_n_ok[</span><span style="color: #000000; ">51</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; ">},f[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; ">hotel.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; ">hotel.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,k,p;<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; ">k</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">p;<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; ">)<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; ">color[i]</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">consume[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(consume[i]</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">p){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">color_n[color[i]]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy(color_n,color_n</span><span style="color: #000000; ">+</span><span style="color: #000000; ">k,color_n_ok);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;f[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">color_n_ok[color[i]],color_n[color[i]]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">accumulate(f,f</span><span style="color: #000000; ">+</span><span style="color: #000000; ">n,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)</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></div><img src ="http://www.cppblog.com/powerwater/aggbug/176675.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-05-30 00:51 <a href="http://www.cppblog.com/powerwater/articles/176675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2011提高组day1 第1题 铺地毯 解题报告</title><link>http://www.cppblog.com/powerwater/articles/160451.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Fri, 18 Nov 2011 07:24:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/160451.html</guid><description><![CDATA[水题，不解释。<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">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; ">10008</span><span style="color: #000000; ">);<br /></span><span style="color: #0000FF; ">struct</span><span style="color: #000000; ">&nbsp;pos_T<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x1,y1,a,b;<br />};<br />pos_T&nbsp;cpt[N];<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;can(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;y)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cpt[i].x1</span><span style="color: #000000; ">||</span><span style="color: #000000; ">x</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">cpt[i].x1</span><span style="color: #000000; ">+</span><span style="color: #000000; ">cpt[i].a)&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; ">if</span><span style="color: #000000; ">&nbsp;(y</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cpt[i].y1</span><span style="color: #000000; ">||</span><span style="color: #000000; ">y</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">cpt[i].y1</span><span style="color: #000000; ">+</span><span style="color: #000000; ">cpt[i].b)&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; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />}<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; ">carpet.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; ">carpet.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,i,x,y;<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;(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;&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; ">cpt[i].x1</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">cpt[i].y1</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">cpt[i].a</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">cpt[i].b;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</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;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">--</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(can(i,x,y))&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">-1</span><span style="color: #000000; ">"</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;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;cin.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout.close();<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><img src ="http://www.cppblog.com/powerwater/aggbug/160451.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-11-18 15:24 <a href="http://www.cppblog.com/powerwater/articles/160451.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NOIP2007_2_字符串的展开</title><link>http://www.cppblog.com/powerwater/articles/159280.html</link><dc:creator>龙在江湖</dc:creator><author>龙在江湖</author><pubDate>Fri, 28 Oct 2011 11:19:00 GMT</pubDate><guid>http://www.cppblog.com/powerwater/articles/159280.html</guid><wfw:comment>http://www.cppblog.com/powerwater/comments/159280.html</wfw:comment><comments>http://www.cppblog.com/powerwater/articles/159280.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/powerwater/comments/commentRss/159280.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/powerwater/services/trackbacks/159280.html</trackback:ping><description><![CDATA[<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 150%; text-align: center"><span style="font-weight: bold; font-size: 14pt; font-family: '宋体'; mso-spacerun: 'yes'">字符串的展开</span><span style="font-weight: bold; font-size: 14pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt; text-align: center"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">(expand.pas/c/cpp)</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">【问题描述】</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">在初赛普及组的&#8220;阅读程序写结果&#8221;的问题中，我们曾给出一个字符串展开的例子：如果在输入的字符串中，含有类似于&#8220;<font face="Times New Roman">d-h</font><font face="宋体">&#8221;或&#8220;</font><font face="Times New Roman">4-8</font><font face="宋体">&#8221;的子串，我们就把它当作一种简写，输出时，用连续递增的字母或数字串替代其中的减号，即，将上面两个子串分别输出为&#8220;</font><font face="Times New Roman">defgh</font><font face="宋体">&#8221;和&#8220;</font><font face="Times New Roman">45678</font><font face="宋体">&#8221;。在本题中，我们通过增加一些参数的设置，使字符串的展开更为灵活。具体约定如下：</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">（<font face="Times New Roman">1</font><font face="宋体">）遇到下面的情况需要做字符串的展开：在输入的字符串中，出现了减号&#8220;</font><font face="Times New Roman">-</font><font face="宋体">&#8221;，减号两侧同为小写字母或同为数字，且按照</font><font face="Times New Roman">ASCII</font><font face="宋体">码的顺序，减号右边的字符严格大于左边的字符。</font></span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">（<font face="Times New Roman">2</font><font face="宋体">）参数</font><font face="Times New Roman">p1</font><font face="宋体">：展开方式。</font><font face="Times New Roman">p1=1</font><font face="宋体">时，对于字母子串，填充小写字母；</font><font face="Times New Roman">p1=2</font><font face="宋体">时，对于字母子串，填充大写字母。这两种情况下数字子串的填充方式相同。</font><font face="Times New Roman">p1=3</font><font face="宋体">时，不论是字母子串还是数字子串，都用与要填充的字母个数相同的星号&#8220;</font><font face="Times New Roman">*</font><font face="宋体">&#8221;来填充。</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">（<font face="Times New Roman">3</font><font face="宋体">）参数</font><font face="Times New Roman">p2</font><font face="宋体">：填充字符的重复个数。</font><font face="Times New Roman">p2=k</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">表示同一个字符要连续填充</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">k</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">个。例如，当</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">p2=3</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">时，子串</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">&#8220;<font face="Times New Roman">d-h</font><font face="宋体">&#8221;应扩展为&#8220;</font><font face="Times New Roman">deeefffgggh</font><font face="宋体">&#8221;。减号两侧的字符不变。</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">（<font face="Times New Roman">4</font><font face="宋体">）参数</font><font face="Times New Roman">p3</font><font face="宋体">：是否改为逆序：</font><font face="Times New Roman">p3=1</font><font face="宋体">表示维持原有顺序，</font><font face="Times New Roman">p3=2</font><font face="宋体">表示采用逆序输出，注意这时仍然不包括减号两端的字符。例如当</font><font face="Times New Roman">p1=1</font><font face="宋体">、</font><font face="Times New Roman">p2=2</font><font face="宋体">、</font><font face="Times New Roman">p3=2</font><font face="宋体">时，</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">子串</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">&#8220;<font face="Times New Roman">d-h</font><font face="宋体">&#8221;应扩展为&#8220;</font><font face="Times New Roman">dggffeeh</font><font face="宋体">&#8221;。</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">（<font face="Times New Roman">5</font><font face="宋体">）如果减号右边的字符恰好是左边字符的后继，只删除中间的减号，例如：&#8220;</font><font face="Times New Roman">d-e</font><font face="宋体">&#8221;应输出为&#8220;</font><font face="Times New Roman">de</font><font face="宋体">&#8221;，&#8220;</font><font face="Times New Roman">3-4</font><font face="宋体">&#8221;应输出为&#8220;</font><font face="Times New Roman">34</font><font face="宋体">&#8221;。如果减号右边的字符按照</font><font face="Times New Roman">ASCII</font><font face="宋体">码的顺序小于或等于左边字符，输出时，要保留中间的减号，例如：&#8220;</font><font face="Times New Roman">d-d</font><font face="宋体">&#8221;应输出为&#8220;</font><font face="Times New Roman">d-d</font><font face="宋体">&#8221;，&#8220;</font><font face="Times New Roman">3-1</font><font face="宋体">&#8221;应输出为&#8220;</font><font face="Times New Roman">3-1</font><font face="宋体">&#8221;。</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 150%"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">【输入】</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">输入文件<font face="Courier New">expand.in</font><font face="宋体">包括两行：</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">第</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">1</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">行为用空格隔开的</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">3</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">个正整数，依次表示参数</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">p1</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">，</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">p2</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">，</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">p3</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">。</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">第<font face="Times New Roman">2</font><font face="宋体">行为一行字符串，仅由数字、小写字母和减号&#8220;</font><font face="Times New Roman">-</font><font face="宋体">&#8221;组成。行首和行末均无空格。</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">【输出】</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">输出文件<font face="Courier New">expand.out</font><font face="宋体">只有一行，为展开后的字符串</font></span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">。</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 21pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">【输入输出样例</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">1</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">】</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<table style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0pt; padding-top: 0pt; border-collapse: collapse; mso-table-layout-alt: fixed">
<tbody>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.4pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="295">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.in</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.out</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.4pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="295">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">1&nbsp;2&nbsp;1</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">abcs-w1234-9s-4zz</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">abcsttuuvvw1234556677889s-4zz</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr></tbody></table>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">【输入输出样例</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">2</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">】</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<table style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0pt; padding-top: 0pt; border-collapse: collapse; mso-table-layout-alt: fixed">
<tbody>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.05pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="294">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.in</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243.35pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.out</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.05pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="294">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">2&nbsp;3&nbsp;2</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">a-d-d</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243.35pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">aCCCBBBd-d</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr></tbody></table>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; text-indent: 10.5pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: 'Courier New'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">【输入输出样例</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">3</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">】</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<table style="padding-right: 5.4pt; padding-left: 5.4pt; padding-bottom: 0pt; padding-top: 0pt; border-collapse: collapse; mso-table-layout-alt: fixed">
<tbody>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.05pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="294">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.in</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: #000000 0.5pt solid; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243.35pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">expand.out</span><span style="font-weight: bold; font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: #000000 0.5pt solid; width: 221.05pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: 0.5000pt solid #000000; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="294">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">3&nbsp;4&nbsp;2</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">di-jkstra2-6</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td>
<td style="border-right: #000000 0.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0pt; border-left: medium none; width: 243.35pt; padding-top: 0pt; border-bottom: #000000 0.5pt solid; mso-border-bottom-alt: 0.5000pt solid #000000; mso-border-left-alt: none; mso-border-right-alt: 0.5000pt solid #000000; mso-border-top-alt: 0.5000pt solid #000000" valign="top" width="324">
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 18pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">dijkstra2************6</span><span style="font-size: 10.5pt; font-family: '宋体'"><o:p></o:p></span></p></td></tr></tbody></table>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">【限制】</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;&nbsp;4</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">0%</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">的数据</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">满足：</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">字符串长度不超过</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">5</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-top: 0pt; margin-bottom: 0pt; line-height: 12pt"><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">100%</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">的数据</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">满足：</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">1&lt;=p1&lt;=3,&nbsp;1&lt;=p2&lt;=8,&nbsp;1&lt;=p3&lt;=2</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">。</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">字符串长度不超过</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">1</span><span style="font-size: 10.5pt; font-family: '宋体'; mso-spacerun: 'yes'">0</span><span style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-spacerun: 'yes'">0。</span><!--EndFragment-->  </p><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_201924" onclick="this.style.display='none'; Code_Closed_Text_201924.style.display='none'; Code_Open_Image_201924.style.display='inline'; Code_Open_Text_201924.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" height="16" align="top" width="11"><img id="Code_Open_Image_201924" style="display: none" onclick="this.style.display='none'; Code_Open_Text_201924.style.display='none'; Code_Closed_Image_201924.style.display='inline'; Code_Closed_Text_201924.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" height="16" align="top" width="11"><span id="Code_Closed_Text_201924" 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_201924" 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: #0000FF; ">string</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cctype</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; ">int</span><span style="color: #000000; ">&nbsp;p1,p2,p3;<br /></span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;s;<br /></span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;CanExpand(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(s[k]</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; ">)&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; ">if</span><span style="color: #000000; ">&nbsp;(s[k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">s[k</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; ">if</span><span style="color: #000000; ">&nbsp;(isdigit(s[k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">isdigit(s[k</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; ">isalpha(s[k</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">isalpha(s[k</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; ">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;deal(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;k)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">is</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; ">char</span><span style="color: #000000; ">&nbsp;c</span><span style="color: #000000; ">=</span><span style="color: #000000; ">s[k</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; ">;c</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">s[k</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];c</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">switch</span><span style="color: #000000; ">&nbsp;(p1)<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; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">.append(p2,c);&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;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">2</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">.append(p2,toupper(c));&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;</span><span style="color: #0000FF; ">case</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">:&nbsp;</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">.append(p2,</span><span style="color: #000000; ">'</span><span style="color: #000000; ">*</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);&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;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;len</span><span style="color: #000000; ">=</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">.size();<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(p3</span><span style="color: #000000; ">==</span><span style="color: #000000; ">2</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;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; ">len</span><span style="color: #000000; ">/</span><span style="color: #000000; ">2</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;&nbsp;&nbsp;&nbsp;&nbsp;swap(</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">[i],</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">[len</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;s.replace(k,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">is</span><span style="color: #000000; ">);<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ifstream&nbsp;cin(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">expand.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; ">expand.out</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;cin</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">p1</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">p2</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">p3</span><span style="color: #000000; ">&gt;&gt;</span><span style="color: #000000; ">s;<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; ">s.size()</span><span style="color: #000000; ">-</span><span style="color: #000000; ">2</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;(CanExpand(i))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deal(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">s</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">endl;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000;">;<br />}</span></span></div><img src ="http://www.cppblog.com/powerwater/aggbug/159280.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-28 19:19 <a href="http://www.cppblog.com/powerwater/articles/159280.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>