<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>潘锦的空间 &#187; ACM</title>
	<atom:link href="https://www.phppan.com/tag/acm/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.phppan.com</link>
	<description>SaaS SaaS架构 团队管理 技术管理 技术架构 PHP 内核 扩展 项目管理</description>
	<lastBuildDate>Sun, 10 May 2026 02:26:45 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>最小矩阵和</title>
		<link>https://www.phppan.com/2010/09/smallest-matrix-sum/</link>
		<comments>https://www.phppan.com/2010/09/smallest-matrix-sum/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 01:03:38 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=32</guid>
		<description><![CDATA[很久很久以前的代码，在某个角落找到，贴了上来， 在杭电acm1081上可以ac，来源应该是Greater Ne [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>很久很久以前的代码，在某个角落找到，贴了上来，<br />
在杭电acm1081上可以ac，来源应该是Greater New York 2001<br />
貌似作为中南赛区ACM竞赛题</p>
<p>问题描述<br />
【Description】</p>
<p>Given a two-dimensional array of positive and negative integers, a sub-rectangle is any contiguous sub-array of size 1*1 or greater located within the whole array. The sum of a rectangle is the sum of all the elements in that rectangle. In this problem the sub-rectangle with the largest sum is referred to as the maximal sub-rectangle. </p>
<p>As an example, the maximal sub-rectangle of the array: </p>
<p>0 -2 -7 0<br />
9 2 -6 2<br />
-4 1 -4 1<br />
-1 8 0 -2 </p>
<p>is in the lower left corner: </p>
<p>9 2<br />
-4 1<br />
-1 8<br />
and has a sum of 15. </p>
<p>【Input】</p>
<p>The input consists of an N * N array of integers. The input begins with a single positive integer N on a line by itself, indicating the size of the square two-dimensional array. This is followed by N^2 integers separated by whitespace (spaces and newlines). These are the N^2 integers of the array, presented in row-major order. That is, all numbers in the first row, left to right, then all numbers in the second row, left to right, etc. N may be as large as 100. The numbers in the array will be in the range [-127,127].</p>
<p>【Output】</p>
<p>Output the sum of the maximal sub-rectangle.</p>
<p>【Sample Input】<br />
4<br />
0 -2 -7 0 9 2 -6 2<br />
-4 1 -4  1 -1<br />
8  0 -2</p>
<p>【Sample Output】<br />
15</p>
<p>下面的中文来自：http://blog.csdn.net/hym666/archive/2010/08/17/5818591.aspx<br />
此文章处有C++的解答</p>
<p>题目描述：<br />
在一个大的方阵中找出一个子方阵，这个子方阵是所有子方阵和中的最大的一个<br />
问题分析：<br />
问题可以回归到一个数列中的连续字数列的和的最大值。<br />
即把每一行看成一个数列。把每一列转换成一个数。<br />
当然每一列也是一个数列，有很多的连续子数列。所有会有很多中情况。可穷举各种数列来构造一个行向的数列。<br />
再用动态规划计算每一行的最大值，再在各行中选取最大的作为题目的解。</p>
<p>【代码】</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Main <span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #008000; font-style: italic; font-weight: bold;">/**
        * @param args
        */</span>
&nbsp;
       <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> maxSum<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> b, <span style="color: #000066; font-weight: bold;">int</span> n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
              <span style="color: #000066; font-weight: bold;">int</span> max <span style="color: #339933;">=</span> b<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, sum <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n <span style="color: #339933;">;</span> i<span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                     <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>max <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
                            max <span style="color: #339933;">+=</span> b<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     <span style="color: #000000; font-weight: bold;">else</span>
                            max <span style="color: #339933;">=</span> b<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                     <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>max <span style="color: #339933;">&gt;</span> sum<span style="color: #009900;">&#41;</span>
                            sum <span style="color: #339933;">=</span> max<span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
              <span style="color: #000000; font-weight: bold;">return</span> sum<span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> maxTotal<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> a, <span style="color: #000066; font-weight: bold;">int</span> n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
              <span style="color: #000066; font-weight: bold;">int</span> max <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
              <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> b <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                     <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                            b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                     <span style="color: #000066; font-weight: bold;">int</span> sum <span style="color: #339933;">=</span> maxSum<span style="color: #009900;">&#40;</span>b, n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                     <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>sum <span style="color: #339933;">&gt;</span> max<span style="color: #009900;">&#41;</span>
                            max <span style="color: #339933;">=</span> sum<span style="color: #339933;">;</span>
&nbsp;
                     <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> i <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                            <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> k <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> k <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> k<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                                   b<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+=</span> a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                            sum <span style="color: #339933;">=</span> maxSum<span style="color: #009900;">&#40;</span>b, n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>sum <span style="color: #339933;">&gt;</span> max<span style="color: #009900;">&#41;</span>
                                  max <span style="color: #339933;">=</span> sum<span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
              <span style="color: #000000; font-weight: bold;">return</span> max<span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
              <span style="color: #666666; font-style: italic;">// TODO Auto-generated method stub</span>
&nbsp;
              Scanner cin <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Scanner<span style="color: #009900;">&#40;</span><span style="color: #003399;">System</span>.<span style="color: #006633;">in</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #000066; font-weight: bold;">int</span> n<span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>cin.<span style="color: #006633;">hasNext</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                     n <span style="color: #339933;">=</span> cin.<span style="color: #006633;">nextInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                     <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> a <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                            <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                   a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> cin.<span style="color: #006633;">nextInt</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>                                  
                            <span style="color: #009900;">&#125;</span>
                     <span style="color: #009900;">&#125;</span>
                     <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>maxTotal<span style="color: #009900;">&#40;</span>a, n<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2010/09/smallest-matrix-sum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>垃圾陷阱</title>
		<link>https://www.phppan.com/2010/06/trash-trap/</link>
		<comments>https://www.phppan.com/2010/06/trash-trap/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 01:06:55 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=34</guid>
		<description><![CDATA[问题描述 【Description】 卡门——农夫约翰极其珍视的一条Holsteins奶牛——已经落了到“垃圾 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【Description】</p>
<p>卡门——农夫约翰极其珍视的一条Holsteins奶牛——已经落了到“垃圾井”中。“垃圾井”是农夫们扔垃圾的地方，它的深度为D (2 <= D <= 100)英尺。 

卡门想把垃圾堆起来，等到堆得与井同样高时，她就能逃出井外了。另外，卡门可以通过吃一些垃圾来维持自己的生命。 

每个垃圾都可以用来吃或堆放，并且堆放垃圾不用花费卡门的时间。 

假设卡门预先知道了每个垃圾扔下的时间t(0<t<=1000)，以及每个垃圾堆放的高度h(1<=h<=25)和吃进该垃圾能维持生命的时间f(1<=f<=30)，要求出卡门最早能逃出井外的时间，假设卡门当前体内有足够持续10小时的能量，如果卡门10小时内没有进食，卡门就将饿死。 

【Input】 

第一行为2个整数，D 和 G (1 <= G <= 100)，G为被投入井的垃圾的数量。 

第二到第G+1行每行包括3个整数：T (0 < T <= 1000)，表示垃圾被投进井中的时间；F (1 <= F <= 30)，表示该垃圾能维持卡门生命的时间；和 H (1 <= H <= 25)，该垃圾能垫高的高度。

【Output】 

如果卡门可以爬出陷阱，输出一个整表示最早什么时候可以爬出；否则输出卡门最长可以存活多长时间。

【Sample Input 】

20 4
5 4 9
9 3 2
12 6 10
13 1 1

【Sample Output 】
13

Hint 
卡门堆放她收到的第一个垃圾：height=9； 
卡门吃掉她收到的第二个垃圾，使她的生命从10小时延伸到13小时； 
卡门堆放第3个垃圾，height=19； 
卡门堆放第4个垃圾，height=20。 

算法分析
在以下的叙述中，g[i].time、g[i].life、g[i].height分别表示第i个垃圾下落的时间、吃下后可以增加的寿命、垫高的高度；update(a,b)表示if b>a then a:=b。</p>
<p>　　这道题可以用DP解决。用l[i,j]表示掉下来i个垃圾后，卡门爬上的高度为j时她最长的寿命。显然l[0,0]=10。对于任一个状态l[i-1,j]，若l[i-1,j]>=g[i].time，说明这个状态的卡门能够坚持到下一个垃圾下落。在这种情况下，按以下两种方法处理第i个垃圾，即进行状态转移： </p>
<p>吃掉第i个垃圾，即update(l[i,j],l[i-1,j]+g[i].life)； </p>
<p>用第i个垃圾来垫高。令t=j+g[i].height，即把第i个垃圾用来垫高后卡门爬上的总高度。如果t>=d，则卡门于g[i].time时爬了出来，否则update(l[i,t],l[i-1,j])。</p>
<p>　　若首次遇到某一个l[i,0]一次也没有赋值，说明卡门不可能坚持到第i个垃圾下落，则她最多可以存活的时间为l[i-1,0]（即把前i-1个垃圾全吃掉后的寿命）。</p>
<p>　　注意到在计算l数组的第i行时只用到了第i-1行，因此l数组可用滚动数组来实现。</p>
<p>【代码】</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define MAXN 101</span>
<span style="color: #339933;">#define max(a,b) a&gt;b?a:b</span>
&nbsp;
<span style="color: #993333;">typedef</span> <span style="color: #993333;">struct</span> node
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> <span style="color: #000066;">time</span><span style="color: #339933;">,</span> life<span style="color: #339933;">,</span> height<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>node<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       node a<span style="color: #009900;">&#91;</span>MAXN<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> temp<span style="color: #339933;">;</span>
       <span style="color: #993333;">int</span> flag<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #993333;">int</span> f<span style="color: #009900;">&#91;</span>MAXN<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>MAXN <span style="color: #339933;">*</span> <span style="color: #0000dd;">10</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> d<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">,</span> t<span style="color: #339933;">,</span> maxt<span style="color: #339933;">,</span> m<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>d<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       maxt <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #000066;">time</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #202020;">life</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #202020;">height</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> i <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
&nbsp;
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #000066;">time</span> <span style="color: #339933;">&gt;</span> a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>.<span style="color: #000066;">time</span><span style="color: #009900;">&#41;</span>                                                                 
                     <span style="color: #009900;">&#123;</span>
                            temp <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> temp<span style="color: #339933;">;</span>
&nbsp;
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       f<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span>
       flag <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
       maxt <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
&nbsp;
              m <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
              k <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> maxt<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
&nbsp;
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #000066;">time</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
&nbsp;
                            f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> max<span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #202020;">life</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            t <span style="color: #339933;">=</span> j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #202020;">height</span><span style="color: #339933;">;</span>
&nbsp;
                            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&gt;=</span> d<span style="color: #009900;">&#41;</span>
                            <span style="color: #009900;">&#123;</span>
                                   flag <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #000066;">time</span><span style="color: #339933;">;</span>
                                   <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                            <span style="color: #009900;">&#125;</span>
&nbsp;
                            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&gt;</span> m<span style="color: #009900;">&#41;</span>
                                   m <span style="color: #339933;">=</span> t<span style="color: #339933;">;</span>
&nbsp;
                            f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>t<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> max<span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>t<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            k<span style="color: #339933;">++;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
&nbsp;
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>k <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>flag <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
              maxt <span style="color: #339933;">=</span> m<span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>flag <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> flag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>应该是5年前的代码了，从以前的百度blog中转了过来</p>
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2010/06/trash-trap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>邮票面值设计</title>
		<link>https://www.phppan.com/2010/05/postage-stamp/</link>
		<comments>https://www.phppan.com/2010/05/postage-stamp/#comments</comments>
		<pubDate>Thu, 06 May 2010 01:24:23 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=37</guid>
		<description><![CDATA[【问题描述】 【描述 Description 】 　　给定一个信封，最多只允许粘贴N张邮票，计算在给定M（N+ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>【问题描述】<br />
【描述 Description 】</p>
<p>   　　给定一个信封，最多只允许粘贴N张邮票，计算在给定M（N+M<=10）种邮票的情况下（假定所有的邮票数量都足够）,如何设计邮票的面值，能得到最大max ，使得1～max之间的每一个邮资值都能得到。

  例如，N=3，M＝2，如果面值分别为1分、4分，则在l分～6分之间的每一个邮资值都能得到（当然还有8分、9分和12分）：如果面值分别为1分、3分，则在1分～7分之间的每一个邮资值都能得到。可以验证当N=3，M＝2时，7分就是可以得到连续的邮资最大值，所以MAX=7，面值分别为l分、3分。

【样例输入】
共一行，两个整数，分表为N与M的值。

【输入格式 Input Format 】 
   一行，分别为N,M。  

【输出格式 Output Format 】
   两行。
第一行为m种邮票的面值，按升序排列，各数之间用一个空格隔开。
第二行为最大值。


【样例输入 Sample Input 】 
3 2

【样例输出 Sample Output 】
1 3
MAX=7

算法分析
深搜加DP

栈记录所用邮票的面值
每次面值的搜索的范围为：上一次使用的邮票面值+1 to 上一次连续达到的最大值+1
然后DP，记录达到每个面值用的最少邮票数，不断更新最优解
注意要从第1张邮票开始，否则要出错

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">11</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> ans<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">11</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> b<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1001</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> m<span style="color: #339933;">,</span> max<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> dp<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1001</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">9999</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> i<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              b<span style="color: #009900;">&#91;</span>a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
       j <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">do</span>
       <span style="color: #009900;">&#123;</span>
              j<span style="color: #339933;">++;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>k <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> k <span style="color: #339933;">&lt;=</span> i<span style="color: #339933;">;</span> k<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">&gt;</span> a<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> b<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">&lt;</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                            b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> b<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;=</span> m<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> j<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> search<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&gt;</span> n<span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>dp<span style="color: #009900;">&#40;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">&gt;</span> max<span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                            ans<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     max <span style="color: #339933;">=</span> dp<span style="color: #009900;">&#40;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
              <span style="color: #b1b100;">return</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
       j <span style="color: #339933;">=</span> dp<span style="color: #009900;">&#40;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>k <span style="color: #339933;">=</span> j <span style="color: #339933;">;</span> k <span style="color: #339933;">&gt;=</span> a<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> k<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> k<span style="color: #339933;">;</span>
              search<span style="color: #009900;">&#40;</span>i <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       max <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
       a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
       search<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d &quot;</span><span style="color: #339933;">,</span> ans<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;MAX=%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> max<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2010/05/postage-stamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>猫狗大战</title>
		<link>https://www.phppan.com/2010/04/cat-dog/</link>
		<comments>https://www.phppan.com/2010/04/cat-dog/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 02:11:41 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=40</guid>
		<description><![CDATA[问题描述 【描述 Description】 　　新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量，野 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【描述 Description】<br />
   　　新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量，野猫和飞狗这对冤家为此已经准备好久了，为了使战争更有难度和戏剧性，双方约定只能选择Terran(人族)并且只能造机枪兵。</p>
<p>　　比赛开始了，很快，野猫已经攒足几队机枪兵，试探性的发动进攻；然而，飞狗的机枪兵个数也已经不少了。野猫和飞狗的兵在飞狗的家门口相遇了，于是，便有一场腥风血雨和阵阵惨叫声。由于是在飞狗的家门口，飞狗的兵补给会很快，野猫看敌不过，决定撤退。这时飞狗的兵力也不足够多，所以没追出来。</p>
<p>　　由于不允许造医生，机枪兵没办法补血。受伤的兵只好忍了。555－<br />
　　现在，野猫又攒足了足够的兵力，决定发起第二次进攻。为了使这次进攻给狗狗造成更大的打击，野猫决定把现有的兵分成两部分，从两路进攻。由于有些兵在第一次战斗中受伤了，为了使两部分的兵实力平均些，分的规则是这样的：1）两部分兵的个数最多只能差一个；2）每部分兵的血值总和必须要尽可能接近。现在请你编写一个程序，给定野猫现在有的兵的个数以及每个兵的血格值，求出野猫按上述规则分成两部分后每部分兵的血值总和。</p>
<p>【输入格式 Input Format】<br />
   第一行为一个整数n(1<=n<=200)，表示野猫现在有的机枪兵的个数。以下的n行每行一个整数，表示每个机枪兵的血格(1<=ai<=40)。  

【输出格式 Output Format 】 
   只有一行，包含两个数，即野猫的每部分兵的血值总和，较小的一个值放在前面，两个数用空格分隔。 

【样例输入 Sample Input 】
3
35
20
32

【样例输出 Sample Output】 
35 52 

【算法分析】
1 to n div 2为前一半数，n div 2+1 to n为后一半数之后枚举a[i],a[j]看是否可以交换

代码
方法一：



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> <span style="color: #000066;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> t<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
              <span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span>t<span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span>
              <span style="color: #b1b100;">return</span> t<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">201</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> b<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">201</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> l1<span style="color: #339933;">,</span> l2<span style="color: #339933;">,</span> sum1 <span style="color: #339933;">,</span> sum2<span style="color: #339933;">,</span> temp<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       l1 <span style="color: #339933;">=</span> n <span style="color: #339933;">/</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span>
       l2 <span style="color: #339933;">=</span> n <span style="color: #339933;">-</span> l1<span style="color: #339933;">;</span>
       sum1 <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
       sum2 <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> l1<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              sum1 <span style="color: #339933;">+=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> l2<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>b<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              sum2 <span style="color: #339933;">+=</span> b<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> l1<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> l2<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>sum1 <span style="color: #339933;">+</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>sum2 <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #000066;">abs</span><span style="color: #009900;">&#40;</span>sum1 <span style="color: #339933;">-</span> sum2<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                            sum1 <span style="color: #339933;">=</span> sum1 <span style="color: #339933;">+</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            sum2 <span style="color: #339933;">=</span> sum2 <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            temp <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> temp<span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>sum1 <span style="color: #339933;">&lt;</span> sum2<span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> sum1<span style="color: #339933;">,</span> sum2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d %d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> sum2<span style="color: #339933;">,</span> sum1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>方法二：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
</pre></td><td class="code"><pre class="pascal" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">Const</span>
maxn<span style="color: #000066;">=</span><span style="color: #cc66cc;">200</span><span style="color: #000066;">;</span>
maxm<span style="color: #000066;">=</span><span style="color: #cc66cc;">8000</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">Var</span>
f<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">..</span><span style="color: #006600;">maxn</span><span style="color: #000066;">,</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">..</span><span style="color: #006600;">maxm</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">boolean</span><span style="color: #000066;">;</span>
&nbsp;
n<span style="color: #000066;">,</span>ans<span style="color: #000066;">,</span>mid<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
d<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">array</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #000066;">..</span><span style="color: #006600;">maxn</span><span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">of</span> <span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Procedure</span> Init<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> i<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
　　fillchar<span style="color: #009900;">&#40;</span>f<span style="color: #000066;">,</span>sizeof<span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #000066;">,</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #000066;">;</span>
　　f<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #000066;">;</span>
　　ans<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">;</span>
　　<span style="color: #000066;">readln</span><span style="color: #009900;">&#40;</span>n<span style="color: #009900;">&#41;</span><span style="color: #000066;">;</span>
　　<span style="color: #000000; font-weight: bold;">for</span> i<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> n <span style="color: #000000; font-weight: bold;">do</span> <span style="color: #000066;">readln</span><span style="color: #009900;">&#40;</span>d<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #000066;">;</span>
　　<span style="color: #000000; font-weight: bold;">for</span> i<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> n <span style="color: #000000; font-weight: bold;">do</span> ans<span style="color: #000066;">:</span><span style="color: #000066;">=</span>ans<span style="color: #000066;">+</span>d<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #000066;">;</span>
　　mid<span style="color: #000066;">:</span><span style="color: #000066;">=</span>ans <span style="color: #000000; font-weight: bold;">div</span> <span style="color: #cc66cc;">2</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Procedure</span> Work<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> i<span style="color: #000066;">,</span>j<span style="color: #000066;">,</span>k<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">begin</span>
　　<span style="color: #000000; font-weight: bold;">for</span> i<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">to</span> n <span style="color: #000000; font-weight: bold;">do</span>
　　  <span style="color: #000000; font-weight: bold;">for</span> k<span style="color: #000066;">:</span><span style="color: #000066;">=</span>i <span style="color: #000000; font-weight: bold;">downto</span> <span style="color: #cc66cc;">1</span> <span style="color: #000000; font-weight: bold;">do</span>
　　　　<span style="color: #000000; font-weight: bold;">for</span> j<span style="color: #000066;">:</span><span style="color: #000066;">=</span>mid<span style="color: #000066;">-</span>d<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">downto</span> <span style="color: #cc66cc;">0</span> <span style="color: #000000; font-weight: bold;">do</span>
　　　　  <span style="color: #000000; font-weight: bold;">if</span> f<span style="color: #009900;">&#91;</span>k<span style="color: #000066;">-</span><span style="color: #cc66cc;">1</span><span style="color: #000066;">,</span>j<span style="color: #009900;">&#93;</span> <span style="color: #000000; font-weight: bold;">then</span> f<span style="color: #009900;">&#91;</span>k<span style="color: #000066;">,</span>j<span style="color: #000066;">+</span>d<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">Procedure</span> Print<span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> i<span style="color: #000066;">,</span>j<span style="color: #000066;">:</span><span style="color: #000066; font-weight: bold;">integer</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">begin</span>
　　i<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">;</span>j<span style="color: #000066;">:</span><span style="color: #000066;">=</span><span style="color: #cc66cc;">0</span><span style="color: #000066;">;</span>
　　<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">not</span> f<span style="color: #009900;">&#91;</span>n <span style="color: #000000; font-weight: bold;">div</span> <span style="color: #cc66cc;">2</span><span style="color: #000066;">,</span>mid<span style="color: #000066;">+</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">do</span> dec<span style="color: #009900;">&#40;</span>j<span style="color: #009900;">&#41;</span><span style="color: #000066;">;</span>
　　j<span style="color: #000066;">:</span><span style="color: #000066;">=</span>mid<span style="color: #000066;">+</span>j<span style="color: #000066;">;</span>
　　<span style="color: #000066;">writeln</span><span style="color: #009900;">&#40;</span>j<span style="color: #000066;">,</span><span style="color: #ff0000;">' '</span><span style="color: #000066;">,</span>ans<span style="color: #000066;">-</span>j<span style="color: #009900;">&#41;</span><span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">end</span><span style="color: #000066;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">BEGIN</span>
init<span style="color: #000066;">;</span>
work<span style="color: #000066;">;</span>
print<span style="color: #000066;">;</span>
<span style="color: #000000; font-weight: bold;">END</span><span style="color: #000066;">.</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2010/04/cat-dog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>三取方格数</title>
		<link>https://www.phppan.com/2010/02/three-take-the-check-number/</link>
		<comments>https://www.phppan.com/2010/02/three-take-the-check-number/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 08:18:32 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=47</guid>
		<description><![CDATA[【问题描述】 背景 Background JerryZhou同学经常改编习题给自己做。 这天，他又改编了一题。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>【问题描述】<br />
背景 Background<br />
   JerryZhou同学经常改编习题给自己做。</p>
<p>这天，他又改编了一题。。。。。</p>
<p>【描述 Description】<br />
   设有N*N的方格图，我们将其中的某些方格填入正整数，</p>
<p>而其他的方格中放入0。<br />
某人从图得左上角出发，可以向下走，也可以向右走，直到到达右下角。<br />
在走过的路上，他取走了方格中的数。（取走后方格中数字变为0）<br />
此人从左上角到右下角共走3次，试找出3条路径，使得取得的数总和最大。</p>
<p>【输入格式 Input Format】</p>
<p>  第一行:N   (4<=N<=20)
接下来一个N*N的矩阵，矩阵中每个元素不超过80，不小于0    

【输出格式 Output Format】
   一行，表示最大的总和。

【样例输入 Sample Input】
   4
1 2 3 4
2 1 3 4
1 2 3 4
1 3 2 4

样例输出 Sample Output   
   39

注释 Hint  
   多进程DP 
算法分析
可以用网络流来做
由于没做二取方格数；我一开始用一般DP；DP一次则把走过的路删去；3次DP；
只对了一组；看了题解后知道了我的算法虽然保证了3次DP的最优；但并不代表全局最优；是有反例的......
其实可以用压缩数组的方法..因为每一阶段都只与上一阶段有关..滚动滚动数组..循环利用..不断再生..节约环保..{好像扯远了...-_-#}..不过节约时间起见..其实不用滚动数组也可以以0ms过掉..

　　做这条题时很深刻地感受得到..这条题是斜着划分阶段的..太伟大了啦..而且由于每一阶段中..横坐标与纵坐标有一种莫名的内在关系..所以为数组节约了不少维..{不过就算不节约..N<=20..也应该不会超..}..
用sum[k,x,y,z]表示当走到第K步时,且三人横坐标分别为X,Y,Z时..所取数的最大值..由于每一个人都可以由2个方向推来..所以一共有2^3=8种状态..

sum[k,x,y,x]=max(sum[k,x,y,z],sum[k-1,x+f[i,1],y+f[i,2],z+f[i,3]])
且由于第K步只能到达横坐标<=min(k,n)的点..所以其实循环时可以节约节约..
注意:每一格只能取一次..数组的大小..

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
<span style="color: #339933;">#define max(a,b) a&gt;b?a:b</span>
<span style="color: #993333;">int</span> min<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> a<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> b<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>a <span style="color: #339933;">&lt;</span> b<span style="color: #009900;">&#41;</span>
              <span style="color: #b1b100;">return</span> a<span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span>
              <span style="color: #b1b100;">return</span> b<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> f<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">41</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">21</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">21</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">21</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">21</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">21</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> i <span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">,</span> x1<span style="color: #339933;">,</span> x2<span style="color: #339933;">,</span> x3<span style="color: #339933;">,</span> temp<span style="color: #339933;">,</span> s1<span style="color: #339933;">,</span> s2<span style="color: #339933;">,</span> s3<span style="color: #339933;">;</span>
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       f<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>k <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> k <span style="color: #339933;">&lt;=</span> n <span style="color: #339933;">+</span> n <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> k<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>x1 <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> x1 <span style="color: #339933;">&lt;=</span> min<span style="color: #009900;">&#40;</span>k<span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> x1<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
&nbsp;
                     <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>x2 <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> x2 <span style="color: #339933;">&lt;=</span> min<span style="color: #009900;">&#40;</span>k<span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> x2<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                            <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>x3 <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> x3 <span style="color: #339933;">&lt;=</span> min<span style="color: #009900;">&#40;</span>k<span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> x3<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                            <span style="color: #009900;">&#123;</span>
                                   temp <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x1 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x2 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x2<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x3 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x3<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                                   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>x1 <span style="color: #339933;">==</span> x2<span style="color: #009900;">&#41;</span>
                                          temp <span style="color: #339933;">-=</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x1 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                                   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>x1 <span style="color: #339933;">==</span> x3<span style="color: #009900;">&#41;</span>
                                          temp <span style="color: #339933;">-=</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x1 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                                   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>x2 <span style="color: #339933;">==</span> x3<span style="color: #009900;">&#41;</span>
                                          temp <span style="color: #339933;">-=</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x2 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x2<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                                   <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>x1 <span style="color: #339933;">==</span> x2 <span style="color: #339933;">&amp;&amp;</span> x1 <span style="color: #339933;">==</span> x3<span style="color: #009900;">&#41;</span>
                                          temp <span style="color: #339933;">+=</span> a<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> x1 <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                                   <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>s1 <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> s1 <span style="color: #339933;">&lt;=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> s1<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                                   <span style="color: #009900;">&#123;</span>
                                          <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>s2 <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> s2 <span style="color: #339933;">&lt;=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> s2<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                                          <span style="color: #009900;">&#123;</span>
                                                 <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>s3 <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> s3 <span style="color: #339933;">&lt;=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> s3<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                                                 <span style="color: #009900;">&#123;</span>
                                                        f<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x2<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x3<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> max<span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>k<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x2<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x3<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>k <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x1 <span style="color: #339933;">+</span> s1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x2 <span style="color: #339933;">+</span> s2<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>x3 <span style="color: #339933;">+</span> s3<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> temp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                                                 <span style="color: #009900;">&#125;</span>
                                          <span style="color: #009900;">&#125;</span>
                                   <span style="color: #009900;">&#125;</span>
                            <span style="color: #009900;">&#125;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>n <span style="color: #339933;">+</span> n <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2010/02/three-take-the-check-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小胖办证</title>
		<link>https://www.phppan.com/2009/11/fatso-card-issuing-service/</link>
		<comments>https://www.phppan.com/2009/11/fatso-card-issuing-service/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 11:29:15 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=50</guid>
		<description><![CDATA[问题描述 【描述 Description 】 xuzhenyi要办个签证。办证处是一座M层的大楼，1]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【描述 Description 】  </p>
<p>   xuzhenyi要办个签证。办证处是一座M层的大楼，1<=M<=100。
每层楼都有N个办公室，编号为1..N(1<=N<=500)。每个办公室有一个签证员。
签证需要让第M层的某个签证员盖章才有效。
每个签证员都要满足下面三个条件之一才会给xuzhenyi盖章：

1. 这个签证员在1楼
2. xuzhenyi的签证已经给这个签证员的正楼下（房间号相同）的签证员盖过章了。
3. xuzhenyi的签证已经给这个签证员的相邻房间（房间号相差1，楼层相同）的签证员盖过章了。 

每个签证员盖章都要收取一定费用，这个费用不超过1000000000。
找出费用最小的盖章路线，使签证生效

【输入格式 Input Format 】 

   第1行两个整数M和N。
接下来M行每行N个整数，第i行第j个数表示第i层的第j个签证员收取的费用。  

【输出格式 Output Format】  

   按顺序打出你经过的房间的编号，每行一个数。
如果有多条费用最小的路线，输出任意一条。 

【样例输入 Sample Input 】
3 4
10 10 1 10
2 2 2 10
1 10 10 10 
   
【样例输出 Sample Output】
3
3
2
1
1 

【算法分析】
DP顺序：从下到上，再从左到右，再从右到左

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
<span style="color: #339933;">#define M 101</span>
<span style="color: #339933;">#define N 501</span>
<span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span>M<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>N<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> x<span style="color: #009900;">&#91;</span>M<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>N<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> y<span style="color: #009900;">&#91;</span>M<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>N<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>M<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>N<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">void</span> print<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> xx<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> yy<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>xx <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">||</span> yy <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
              <span style="color: #b1b100;">return</span> <span style="color: #339933;">;</span>
       print<span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#91;</span>xx<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>yy<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> y<span style="color: #009900;">&#91;</span>xx<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>yy<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> yy<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #993333;">int</span> m<span style="color: #339933;">,</span> n<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> min<span style="color: #339933;">,</span> flag<span style="color: #339933;">;</span>
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>y<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>y<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              f<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> m <span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> f<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     x<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
                     y<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> j<span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                            f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            x<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
                            y<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>     
              <span style="color: #009900;">&#125;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> n <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                           f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> f<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                            x<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
                            y<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> j <span style="color: #339933;">+</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       min <span style="color: #339933;">=</span> <span style="color: #0000dd;">2000000000</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> min<span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     min <span style="color: #339933;">=</span> f<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     flag <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       print<span style="color: #009900;">&#40;</span>m<span style="color: #339933;">,</span> flag<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2009/11/fatso-card-issuing-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数的划分</title>
		<link>https://www.phppan.com/2009/11/entropy-of-a-partition/</link>
		<comments>https://www.phppan.com/2009/11/entropy-of-a-partition/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 00:41:15 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=54</guid>
		<description><![CDATA[问题描述 【描述 Description】 将整数n分成k份，且每份不能为空，任意两份不能相同(不考虑顺序)。 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【描述 Description】<br />
将整数n分成k份，且每份不能为空，任意两份不能相同(不考虑顺序)。<br />
例如：n=7，k=3，下面三种分法被认为是相同的。<br />
1,1,5; 1,5,1; 5,1,1;</p>
<p>问有多少种不同的分法。</p>
<p>【输入格式 Input Format】<br />
   输入n，k (6<n<=200，2<=k<=6)  

【输出格式 Output Format】
   一个整数，即不同的分法。 

样例输入 Sample Input   
   7 3 

【样例输出 Sample Output 】 
   4 

【算法分析】
与其说是动规.不如说是递推的.根据EXAMPLE DATA做一次分析
.样例是讲7分成3份.则
[] []
[] []
[] [] []
　　　　   有3列则表示3份.

则就是
[] []
[] [] 
　　　　   再加1

由于最下面一层必须要有1/则能保证有3种分法.
f[7,3]=f[7-3,3]+f[7-1,3-1]

就可推导出f[i,j]:=f[i-j,j]+f[i-1,j-1];
这里f[i,j]表示的是什么呢?讲i分成j份有f[i,j]种分法.
所以,就可以出来叻.预处理是F[0,0]:=1;

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
&nbsp;
       <span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">201</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">10</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> m<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> m<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">&gt;=</span> j <span style="color: #009900;">&#41;</span>
                            a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>                
       <span style="color: #009900;">&#125;</span>
&nbsp;
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> a<span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2009/11/entropy-of-a-partition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4-Hanoi-Tower</title>
		<link>https://www.phppan.com/2009/10/4-hanoi-tower/</link>
		<comments>https://www.phppan.com/2009/10/4-hanoi-tower/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 04:08:51 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=61</guid>
		<description><![CDATA[问题描述 【描述 Description】 “汉诺塔”，是一个众所周知的古老游戏。现在我们把问题稍微改变一下： [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【描述 Description】<br />
   “汉诺塔”，是一个众所周知的古老游戏。现在我们把问题稍微改变一下：如果一共有4根柱子， 而不是3根，那么至少需要移动盘子多少次，才能把所有的盘子从第1根柱子移动到第4根柱子上呢？</p>
<p>为了编程方便，您只需要输出这个结果mod 10000的值。</p>
<p>【输入格式 Input Format】<br />
   一个正整数n。（0<n<=50000）  

【输出格式 Output Format】
   一个正整数，表示把n个盘子从第1根柱子移动到第4根柱子需要的最少移动次数mod 10000的值。 

【样例输入 Sample Input】
   2 


【样例输出 Sample Output】
   3

【算法分析】 
有数学方法

递推

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> m<span style="color: #339933;">,</span> s<span style="color: #339933;">,</span> t<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> flag<span style="color: #339933;">;</span>
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       m <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
       s <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
       t <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span>
       flag <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">2</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>flag <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> i<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     s <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">+</span> t<span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">10000</span><span style="color: #339933;">;</span>
                     m<span style="color: #339933;">++;</span>
&nbsp;
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>m <span style="color: #339933;">==</span> n<span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                            <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                            flag <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
                            <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
              t <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>t <span style="color: #339933;">*</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #0000dd;">10000</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2009/10/4-hanoi-tower/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新年趣事之打牌</title>
		<link>https://www.phppan.com/2009/10/new-years-cards/</link>
		<comments>https://www.phppan.com/2009/10/new-years-cards/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 00:29:46 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=64</guid>
		<description><![CDATA[问题描述 【描述 Description】 　　过年的时候，大人们最喜欢的活动，就是打牌了。xiaomengx [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>问题描述<br />
【描述 Description】<br />
   　　过年的时候，大人们最喜欢的活动，就是打牌了。xiaomengxian不会打牌，只好坐在一边看着。<br />
　　这天，正当一群人打牌打得起劲的时候，突然有人喊道：“这副牌少了几张！”众人一数，果然是少了。于是这副牌的主人得意地说：“这是一幅特制的牌，我知道整副牌每一张的重量。只要我们称一下剩下的牌的总重量，就能知道少了哪些牌了。”大家都觉得这个办法不错，于是称出剩下的牌的总重量，开始计算少了哪些牌。由于数据量比较大，过了不久，大家都算得头晕了。<br />
　　这时，xiaomengxian大声说：“你们看我的吧！”于是他拿出笔记本电脑，编出了一个程序，很快就把缺少的牌找了出来。<br />
　　如果是你遇到了这样的情况呢？你能办到同样的事情吗？</p>
<p>【输入格式 Input Format】<br />
   　　第一行一个整数TotalW，表示剩下的牌的总重量。<br />
　　第二行一个整数N（1<N<=100），表示这副牌有多少张。
　　接下来N行，每行一个整数Wi（1<=Wi<=1000），表示每一张牌的重量。

【输出格式 Output Format 】
   　如果无解，则输出“0”；如果有多解，则输出“-1”；否则，按照升序输出丢失的牌的编号，相邻两个数之间用一个空格隔开。 


【样例输入 Sample Input 】  
270
4
100
110
170
200

【样例输出 Sample Output】
   2 4

注释 Hint  

   Sample input #2
270
4
100
110
160
170

Sample output #2
-1


Sample input #3
270
4
100
120
160
180


Sample output #3
0

【算法分析】
一维DP＋一维路径记录＝AC！！！

F[]记录dp，last[i]记录重量为i的选择，pre[i]记录重量i的前驱

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
&nbsp;
<span style="color: #339933;">#define MAXN 100001</span>
<span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">101</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> f<span style="color: #009900;">&#91;</span>MAXN<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> last<span style="color: #009900;">&#91;</span>MAXN<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> pre<span style="color: #009900;">&#91;</span>MAXN<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">void</span> print<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> s<span style="color: #339933;">,</span> <span style="color: #993333;">int</span> n<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              print<span style="color: #009900;">&#40;</span>last<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>s <span style="color: #339933;">==</span> n<span style="color: #009900;">&#41;</span>
                     <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> pre<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              <span style="color: #b1b100;">else</span>
                     <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d &quot;</span><span style="color: #339933;">,</span> pre<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> s<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>s<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
              s <span style="color: #339933;">=</span> s <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       s <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>s<span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>f<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>last<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>last<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>pre<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>pre<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       f<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> s <span style="color: #339933;">-</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> j<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
                     <span style="color: #009900;">&#123;</span>
                            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
                            <span style="color: #009900;">&#123;</span>
                                   f<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> f<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                                   last<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> j<span style="color: #339933;">;</span>
                                   pre<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
                            <span style="color: #009900;">&#125;</span>
                            <span style="color: #b1b100;">else</span>
                                   f<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">+</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span>
                     <span style="color: #009900;">&#125;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;0<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#91;</span>s<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;-1<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">else</span>
       <span style="color: #009900;">&#123;</span>
              print<span style="color: #009900;">&#40;</span>s<span style="color: #339933;">,</span> s<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2009/10/new-years-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>迎春舞会之三人组舞</title>
		<link>https://www.phppan.com/2009/10/spring-festival-dance/</link>
		<comments>https://www.phppan.com/2009/10/spring-festival-dance/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 05:22:05 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[程序相关]]></category>
		<category><![CDATA[ACM]]></category>
		<category><![CDATA[DP]]></category>
		<category><![CDATA[dynamic programming]]></category>
		<category><![CDATA[动态规划]]></category>
		<category><![CDATA[迎春舞会]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=67</guid>
		<description><![CDATA[【问题描述】 背景 Background 　　HNSDFZ的同学们为了庆祝春节，准备排练一场舞 【描述 Des [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>【问题描述】<br />
  背景 Background<br />
   　　HNSDFZ的同学们为了庆祝春节，准备排练一场舞</p>
<p>【描述 Description】<br />
   　　n个人选出3*m人，排成m组，每组3人。<br />
　　站的队形——较矮的2个人站两侧，最高的站中间。<br />
　　从对称学角度来欣赏，左右两个人的身高越接近，则这一组的“残疾程度”越低。<br />
　　计算公式为  h=(a-b)^2  (a、b为较矮的2人的身高)<br />
　　那么问题来了。<br />
　　现在候选人有n个人，要从他们当中选出3*m个人排舞蹈，要求总体的“残疾程度”最低。</p>
<p>【输入格式 Input Format】<br />
   　　第一排为m，n。<br />
　　第二排n个数字，保证升序排列。</p>
<p>【输出格式 Output Format】<br />
   　　输出最小“残疾程度”。</p>
<p>【样例输入 Sample Input】<br />
9 40<br />
1 8 10 16 19 22 27 33 36 40 47 52 56 61 63 71 72 75 81 81 84 88 96 98 103 110 113 118 124 128 129 134 134 139 148 157 157 160 162 164</p>
<p>【样例输出 Sample Output】<br />
   23</p>
<p>注释 Hint<br />
   m<=1000,n<=5000
数据保证3*m<=n

【算法分析】
从大到小排序 a[i]

f[i,j] 表示前i个数中有j对跳舞组合时的最优解
应为要最优就必须是排序时相邻两数的在两边才最好
而中间的人最高，记 f[i,j]=f[i-2,j-1]+(a[i]-a[i-1])^2
如果不取a[j]就  记 f[i,j]=f[i-1,j]
所以 f[i,j]=min{f[i,j]=f[i-2,j-1]+(a[i]-a[i-1])^2 | f[i,j]=f[i-1,j]}

huyichen 
摘自一大牛语录:
首先将筷子长度从短到长排序。
F[i,j,0]表示i个人使用前j双筷子，且第j根筷子不用，所需要长度差的平方和的最小值。
F[i,j,1]表示i个人使用前j双筷子，且使用第j根筷子，所需要长度差的平方和的最小值。
则F[i,j,0]=min{f[i,j-1,1]，f[i,j-1,0]}，F[i,j,1]=F[i-1,j-1,0]+(l[j]-l[j-1])^2
ans=min{F[k,n,1]，F[k,n,0]}

算法复杂度为O(NK)。

算法正确性的简单证明：

因为筷子配对的时候要求是长度平方差最小，所以每根筷子的配对的时候总是希望和长度差最小的配对，即排序后相邻两根筷子是可以配对的。l[a]，l，l[c]，l[d]表示4根排序好的筷子。因为(l-l[a])^2+(l[d]-l[c])^2<(l-l[c])^2+(l[d]-l[a])^2，所以上述配对方法是正确的。

本题同样可以把模型直接转变为二分图最小权匹配。

将两根筷子相连的边权值标记为两根筷子长度平方差，然后对二分图求一次最小权匹配。可以使用网络流的最小费用K流的算法，寻找K次最短路的增广轨。

算法复杂度为O(KN^3)。

非常显然，动态规划的复杂度远远低于二分图最小权匹配的复杂度。

【代码】



<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
<span style="color: #339933;">#include &lt;string.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1001</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">5001</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> b<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">5001</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
       <span style="color: #993333;">int</span> n<span style="color: #339933;">,</span> m<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> k<span style="color: #339933;">,</span> temp<span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>m<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>n<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000066;">memset</span><span style="color: #009900;">&#40;</span>b<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #000066;">scanf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>b<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
                     a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">2000000000</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
&nbsp;
       <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> m<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
              <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> i <span style="color: #339933;">+</span> i<span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;=</span> n <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>m <span style="color: #339933;">-</span> i<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">3</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
              <span style="color: #009900;">&#123;</span>
                     a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                     temp <span style="color: #339933;">=</span> a<span style="color: #009900;">&#91;</span>i <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> b<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>b<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> b<span style="color: #009900;">&#91;</span>j <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> j <span style="color: #339933;">&lt;</span> n <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>m <span style="color: #339933;">-</span> i<span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> <span style="color: #0000dd;">3</span> <span style="color: #339933;">&amp;&amp;</span> temp <span style="color: #339933;">&lt;</span> a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>
                            a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> temp<span style="color: #339933;">;</span>
              <span style="color: #009900;">&#125;</span>
       <span style="color: #009900;">&#125;</span>
&nbsp;
       <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%d<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> a<span style="color: #009900;">&#91;</span>m<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>n<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2009/10/spring-festival-dance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
