﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-ArcTan-文章分类-ACM-DP</title><link>http://www.cppblog.com/ArcTan/category/19221.html</link><description>dfs</description><language>zh-cn</language><lastBuildDate>Mon, 06 Aug 2012 01:05:29 GMT</lastBuildDate><pubDate>Mon, 06 Aug 2012 01:05:29 GMT</pubDate><ttl>60</ttl><item><title>SGU_506 _DP(最长公共自序列变种)</title><link>http://www.cppblog.com/ArcTan/articles/185930.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Wed, 01 Aug 2012 11:39:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/185930.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/185930.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/185930.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/185930.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/185930.html</trackback:ping><description><![CDATA[<a href="http://acm.sgu.ru/problem.php?contest=0&amp;problem=506">http://acm.sgu.ru/problem.php?contest=0&amp;problem=506</a><br /><br />Summer Training #2 DIV1，被完虐！<br /><br />题意读了两个多小时！！！！<br /><br />题意不说了，<br />第一种做法：<br /><div><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABRoAAAAlCAIAAACiU8KjAAAN20lEQVR4nO2dsWocyxKG5yH8GBIOnF/0CApsR0cPcEGhwCCFBwTKDI4XxceRnVwOix0aVqGw0wmcODI+XDAcc4XO3qBnerurqnu6R7veHe8nvsCenenpmZ3tqr+ruqZZfvsGAAAAAAAAAFU0W+8BAAAAAAAAwORATgMAAAAAAABUg5wGAAAAAAAAqKZply0AAAAAAAAAVIGcBgAAAAAAAKgGOQ0AAAAAAABQDXIaAAAAAAAAoBrkNAAAAAAAAEA1yGkAAAAAAACAapDTAAAAAAAAANUgpwEAAAAAAACqQU4DAAAAAAAAVIOcBoDJMH97+aT/u3w733p/2mW7uL0+enI8H3Ps/HiXLgQAAAAAaknK6etXp0/U39HT00V6t+OzS7Opxe310dCx+tOexenTo9NX1/qjy7PjsGvXt4ut303YPF+ePf6naZaeR4/vbrbfK/hJhL/69KDx8+jlPXJ679B2LZzrEZYzME+L06dH/gNh2lyb2cONPij7GD1Xpik3Teruk/E38AcAfgpJn1wMX9qu5X1+MX4O2vf4J588aTmi/5aimYenTI2i87eXpktQ0L5NfGf04BbZlHJvZKjZ1X0u76q/S9YXIfpZ9GWV2ERh4zbT7PBdzcvpvE2aHxd5tN3zF+/pbqvvn9vH6K67Hv3UXp4dh91zu+GV/tq8e/ND6Wenrv+Zffqy9e7B5ukGkxevfj/KGoCfBnJ6XzHtmmZx+vTI7+NMuHdN3MMTeioJeZzE2l8aU23K3Xmnpqhz/gb+QMz78z+b5nXz/HOw8fPz5nXT/Hn+fjl7/rppXj+frfmk+Wbdp03fh9VHsw9xP8vP1bUz7nKC/uSODXdrDj++3/Y3u31SPrkYi9wgE/wGB3x+NSglRYHn8uxY7PCQH74YnK0BZ34c7JAeq+2eF7RvI+6kGs9lO2IwHNtstFuVnHbTHOpbEA9A8kHKP1eJ0616XmjdBpsVN0Q/bJrRcnpx+vSo4BY7Z+K33wKXwmxcX1s486Sv+eWr3xfGibYfrYINcfPp+6NmeXDyQ380u/ofcnofCLRrN82pR4bMhGJ27jycN10NTf0hR9e3f/jxyI97Yk7Ubw/HLmFUgkNWbe6x3z9RbLumiV0Ww0gJU/hgOW14cpYpL/XkdoYBfwN/QPD+42Hzumk+zPyW2YdNC8KMrI1Eadgx16uHyenRXQ0wm3ITEImet8u2n7bQl5zaPm3yPvnl2bH4xYVbBn3++dtLy1bmZKFWOEqyVrC4vX4Zd8ASnHpoXW2JHQxDTufbT6CHvmhLangfugkDzbZlqce6zZTn0y4XL85exANyST8HbKL5aYn0HTK182NrnjpvmkfK6fnby5L5j/6qpG2zrta2f8XuxRrMpwt+Xrz52m/5ehDrt4uT+6a5f7f69zKg294uWxcyffT47s9P3x/1O2gdGLbw6PH9o+jUUUqzyGeeXd0lPvry7PE/4kQXJ/eZw+Pr3WkuTu6JQu85zpy78deN9dp+P5F/3ThjJuL2I/5cH+Y+SmQEdee15LRMZwo9DzPttsCgwm6RsmsKsYPhPQgD9zA5Laf/HWP9rR2i0N9I3/lUg/9Rk2jhUGB4//pHvaP8dX4YidtQ68a6t9tTxGmFIIzla6QzD8//0qewOiODyV0IPZCp2ZMG+z//nItOd1MJmXiy0R9/FZ7udL6Fvtlwz/2S047MAhMxpIQjT7nPbx5ukpLT6/ptDk6GpvRwiZzLHD54t8P2rYD88PBeo0KrjUXZNIHZsjEdXCKnrYU/YSPVzVqXMKwxy9dOR4+1m3Z6mc0sD34MJXLa3lj483jIpFTA14Nm+ezqu/uvU9eBTo7E6sXJfShEQ6XtxbDXsS6y6lvud1gp8FjJd2r8JuhVeF51IruHfv+gKXnem0/f/2XFe3ePrwcsk953otRo7936Ic9v6YeLbv/TV9de5fpRyAlv999Qpbf9SOo+8m3Gs+yr84pkbyHy+8Pdp11/dBAbOT0hMnZNoEyy6ZcYCYTmXIxJYB9tLd1aXmnBSq7dosTf0Lcl4w/0P1t/E/wsWLRF/JDTiaw7iFN0vfZzArKLrGppreO0GWWbOmRITssodJWcjndOn9eFu9Px5KA/+W5H+6w6bF0CctreGP5Myn3+8Nj86KcPL9SxhcRZxMOTobXdKMnKNoeaeAAP/Rz96ehmPRuS06bBSurejE0MfbnEl1LdrHkrBr/WwsrenbEJ52ni07stIn/dtkxVfS2U04lk/WpC8Xlxcn9wcnfQq1wniVOx3PhToYdly+/e/BCB1vBwpb3bdvnlxdXfrRE/b2OxPSCnZ1d3kw3wykwB2DfUKuVuFBIyODHeZVYpG/Fk71gHyd6ylJQblMRJzeIo7rzKg8/3CnaRvF2L0Z+a++ecFTc7k3Flevv4Uthf3Yj6W5vTuXmG/Q3BoD+gw935LWaq6svd/tm6aKoLrrp/91IwEJCGaHTkA8WedNDbaM1Yqxwne6dPGgfbu0Cx1sPdbiJgriPPUQTbzjb//DyTGy8O97o9tX3rD8MaGSeni31+b44L5agy22ta4qEqTa5ZTqcqNAsKdW9tidYtymmfJzguicC0iYU11cqb3aicbuPVVgNugXtQRBECvaY/3BKHceQzl7/vgz5HObOruz54+9UJ6YuTe6fitAbuw9c6cdqW03GieJgcLtT414NEGnbQPU94rgE5rRO/pwNyet9JKdVUZDjEUsUeI9PbD8qVcjqlzEM5rXOQkNPToMCurTCL4uiQy6DxykcwSkrFpj2DqTx4ddMQJf5ArZx+WMXBbeHlqCVT7eh0WbK3PHBQTretjBtHweRhOe3Sy1e6NJHsLXcT8wipzliyGTmdYJycLvf5e4brO6TV+MNTb5xplnPf65PTdvvCZ1D3sENHp/uO+UZEybcRzUZd3USy9+i6ccImhnf7IRl/YbObltNhW6Z5W228PDuOn7Dk/ivXNVHWpaz82tqWgXlZ++7NDydc/T9mV3cqa3qleEui070SNj5Voe9OUYuF2VqH65bTcto473Qg2XuvSa1h1hZidHQ6/+YPVaE0F502hyNLmSOnp0SZXXMkfUHxJP929u+8gcu7JmGII/XsrctJ2h4D/oa62OHrqpXTrQyATOPWzT40zevD88/nh5EyzKyd9rHcwUCx1sZlFbbjxO/tyOlotzgrXvSTZG/FWDndFvr86cMlD0lozaK1brtWOW22X3ET8ovSS+LeuyCnR1e8CttPLXIeMaUyKpkiolxOR1eeryuQjiNlvhW7bFr+t7FeLd0uW7982gel+zD1f0OlqpOua+S0ESXOZJKHb4fa4+g0pcj2mj5hVQxw0YpotXY6zAaXa6f7Bo/nq/HKiHKPWzudCGqxdnralNu18nn3wSJb+YVwwj66HgpzmXGSplL7urCOUbk/MEJO6ydh16uRLcOaYaFcTOreQNxGr9oKk6vDHPI4BzvZrCgzHkpoS04bJ11zsrchp3UEuwu/U4pMMK4UmcVAqeSyNyQNvo+qlpTWXVcpsgotnboJJaHNkuoS2y5FNnKte/hcmc/YuLh32NSaS5GZD4FYphieLPvoD/dD16AfbHZDJu3i5F7U2RaLqFtrEXKVnM4ffvPp+1Wsq/2xJWunM2u2rbXT3ars3Sfzoqx3b/5GZv/SSDHsEfLVEjxC2UZ/bvQwQ9/5yt5qwfaTvntG6jiVvX9RUnatXKkOv28y73Ao+2ikWkw/Ol3kb1T5A/Vrp3/XJXOmcPf6lGwjTzvUn8k0bKP0l/H6qKHodMlZPsxyJ11vKTJdTc3sNi/KssiEZDMvytIIn//y7N9ilPv50el8/vngi7LyHRtsP8HAG61GlEwvaTZgPXJ6cXv9Qn4pI6PT4SXXhNkrml3ni7IWt9dH0TekZztEPD0/HTJw1zLLw7LZFBtxQ1VBb2OLqBZ2078Qq1BOq5XA0WJpVYpMV/b2klhW6haC2b2LK13Z24hm7zJhoL7f6K6IqPWvjAo75z6KZbNZN9IUsfZHQYb26p061lsZvJxuRUqbFSrsdue90xMnl29c+JoQXassPHCwKcs+irqhpm+xrhWGP/VWZ/yNWn/ggaXIplDZu8N63XQm2VsHsV3kNlo77SXr4cf3QTZ1Ntk7dRa/XZUNFycNFfXhx/MHvSgrPlFW90bCe5Nv7Z4MKZ+8qvq99vnFT7gkY9lSkkYN56rryp7ReAtDOtRn6/wH5ja3aizSzRYOhvlmU1c9osM1/dRf36BNNMtgD75/a9jUihtSEkhPRadlTR3zIQhjQdnbnczLyhybeYVsunrQGiycFQU1Fu7eBO+U9q+YLpbTbbw6+v6PONlbFDmLq3xn3jvtT7QqjaYTvOP3XU8u9zt6I/c0LwEmQ7aGGew5hl0bSjWMDKu2Vvn3U2oyiZd+KsfMiZhKmndI2t+o9gdGJHvHDgkDAuwdWZ+8bWUyl52Ca/1+7fYLX+gjOzQ2ZySVO6aLKKeGFzOXbTA3rbwQt3nP22Wr9FrpbEK+WavD+XHPKMVqFZ/L9NOYDSmxiWIfNeyvodmSr6miFBlsDl02HAC2DnIaAAAAADIgp7fCl2eP7wPxPLGka4A9ATkNAAAAABmQ01tBZiyLdG4AAAAAAADYcZDTAAAAAAAAANUgpwEAAAAAAACqQU4DAAAAAAAAVIOcBgAAAAAAAKgGOQ0AAAAAAABQDXIaAAAAAAAAoBrkNAAAAAAAAEA1zfLbNwAAAAAAAACo4v9o5WpSpv37xQAAAABJRU5ErkJggg==" alt="" /></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;maxn&nbsp;100010</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;maxm&nbsp;120</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;a[maxn],b[maxm];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;cnt[</span><span style="color: #000000; ">27</span><span style="color: #000000; ">],p[</span><span style="color: #000000; ">27</span><span style="color: #000000; ">][maxn],now[maxm];</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,a);<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,b);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">strlen(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">strlen(b);<br />&nbsp;&nbsp;&nbsp;&nbsp;clr(cnt);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;tmp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">a[i]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">'</span><span style="color: #000000; ">a</span><span style="color: #000000; ">'</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p[tmp][cnt[tmp]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;clr(now);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;last</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;begin;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;flag</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">m;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;tmp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">b[j]</span><span style="color: #000000; ">-</span><span style="color: #000000; ">'</span><span style="color: #000000; ">a</span><span style="color: #000000; ">'</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(now[j]</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cnt[tmp]&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;p[tmp][now[j]]</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">last)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now[j]</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(now[j]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">cnt[tmp])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last</span><span style="color: #000000; ">=</span><span style="color: #000000; ">p[tmp][now[j]];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(j</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin</span><span style="color: #000000; ">=</span><span style="color: #000000; ">last;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">flag)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">(n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">last)</span><span style="color: #000000; ">*</span><span style="color: #000000; ">(begin</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">begin;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%I64d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /></span></div><br />很诡异的是后面这个DP做法，第一次提交的时候居然：<br /><div><img src="data:image/png;base64,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" alt="" /></div>搞不清楚Global Error是什么错误，重新提交了一下代码，AC了：<br /><div><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABRsAAAAmCAIAAADLBdszAAAN0UlEQVR4nO2dMWscuxbH50P4Y9i4cP/Yj7CF4yr+AAGXhgt2ecHgLpB6cX1dJc0lLEkZsEsTt1OkcWXu5UHgBYyzr9CMRtI50mi0u95d72/4FfbszJFGOyvpr3MkVRUHBwcHBwcHBwcHBwcHB0fBUc9qAAAAAAAAABgKihoAAAAAAACgBBQ1AAAAAAAAQAkoagAAAAAAAIASUNQAAAAAAAAAJaCoAQAAAAAAAEpAUQMAAAAAAACUgKIGAAAAAAAAKAFFDQAAAAAAAFACihoANpLpp4uD9rj4NF15fupZfXN3NToYT0vunY7X6UEAAAAAIJMsRX314eRAHKPDk5v4ZePTC2Hn5uRwFOsBX5yOXdtXdzf+vdNxMumbu6uRcwG90u3gcbeaVQ2/J/cPq84PvChupSHrhJenVfgo6teHabzchslrktzj5MOVvdFtE5OvaKF9F9MIik+990ptymMGV87Vh5NIoXl9CdnZ8PsDsjsBAAvh5uRwlKhAbu6uRskfYPw3nmXf4iuIBQiBQFNoisaromOZnH66ULsEGfZ1XEeCVrl5dWN+b6TPbFfO+Vm1paR+EX6KuflMaL3go0FvQvD+BN9mpgSuhyjqdLM0HSd7DKbsIu+ceQO6AjW5t0Vgisn5FsPrg56ESYuO6fYwuXxCUW8fTXv2x4c/R8k24MVAUb9W2ua25x3zG8qgnTLfr/5uFNkP0RR1mKi0kGyaV4l5HK1TcXNyOHLOT8d+fzToP5iy3eKf1dezz1V1XR39cE7+OKquq+rz2dfZ5Oi6qq6PJgtONG3WfFq1eeg+mnzz85mfVmOn7HGc/KTudS+r9r5/XfU3u3rMby1ee8iBQo/4bzzTfsfF6TioXYN6YBBCdEiB41U7kdHMOlbtZ9jXCdSNqM9DOxen45yuUZ9Z77JBijpW/foZ63lPgnIbpPXkixG5pktdPmaGBG5YiKK+OTkcJUrZlELssbVC8ZpMWSJBsV6cjoN3UZ6BVwyKegtx5GszKCvbM39kUalDIkOY7ihvV++1t4yu7v6y45m23gtGMe15d+wzqAOdWzqbW9z1X1NM8/fu9G3OsLL/PnjXx3pdZfYlwr7SmdOa8tzO3Ivh+i5kxqafLrRBgeaMVsiBAt86vn7fq66r6tvEnpl8W7YmTChbT5e6GTO5mk9RF2fVQTVlxiAiOa9ndTtyIR85dn6zcdu1uJIM21BL+jeeYV+9XmniBzpUu3vf+w2xpjll1Rr6+dS+R479CFJqeWdi1XtfIfSYrfsDkHWbsZ6P9rA5+Rys9eIjHYHZd/4XFDYZL6qoZQvXWwqycBNNoBxl8YtJ+Sbynz/Gl4+/qmp2/vGxPfO4W812j3/ZC86Pn6vq+Uv398yhOV/P6nr28Gb/987+0+f7nzvtBa6dWljY2X/e8ZJ+eLP/2/n06da5cXL5FPno4c3+7yCh8+PnxO3+824SKOotxLS45odvqntZ1R6ER9Ow+eFGQaWvRNuaj2IxRSZdTVEH8Vde50CNI8poU+FFsW1/b5sSXKANjSvSrti+xG8Ww0iuuJGsrswq0JVweoRd7ZjmdWD+FuNoUVUQVAVr6OH3+Pdsz9O3rtz1pW9zZeCtDTShr2A9qbl39q9MQstM6FJuHOmOUk0m6lx/9CPlo25GExJeZSU/9iksTXLWQmvWvXK7FLWhV7HkeOPmV0R1huNtTvyKJVWT92Ysw/6A0nDta275/uq91+wgaznPpb4VIkU5IjxY62lPkQoWa3kJRe31IV3TRjC/j7qDpuODg5MP7+MTn5p+pz0ZfAe29fLjuJok1LdhEYHfj7vV7M3lT/OvEdiOVPb06vnxs6tFXbFt9bCVsrf3P3ccy+0FnQj3xXwjyG+dXLnpioT0HNrrHVNhurf3P/8jpP5GgKLePrwYaVlF2DPuuFv7b1Ph+GN2zb+uUK/bmsR8ZG3aG23FaNINor4Dnd/ebj5t8iNd2Sjq9cFtXPra1LCxV3skwcl57Cdzq8tpNZX5R5+XhtrbVk92haM2/en+QPuzDUIQwzPBD3mjZpkZUdfKP6MhG/+qVNfSW5sQt7Fb+hR16IsepKj9i+PpGqd33Kvs5Cedbe+aLsPaI6CoPVaoqDOlbCa+Y0+pjWNZzcxGTnh2hjp1+zk55Z9p1rJERa1GsCem9ybsJ7+RfkUtv4u0BHYpWOu7aW/c0Rp/mNaLiXdCJb3gyeBXlIjPdFORgnxpitrTn+fHz7vHT7ut0DWqOObR9T8NJHFo+cvHX4EadG8X8ruuZw9/XP6vVrzota+3exT1a1Khr+lZIAcxY1kflYvUm4kZy4pX2VagsioLar8gUXWtFJOu6MSncwUrwYwFZ3VNMpWq37uay76kbQrfJ+akRSIjFtbvXCglirqgP5AOI5dn1Hj+9+v9szU+VeNiNX+3atDRkIpuNKTdxZa461uxpsxb9qO+44n6LvfGXSwlcXNZ4DaX/mfPj62Hnf84SgTJB7db6R47v/KXYYGsmaIWzfaC5noIzbJgRd07n9yQqU6Hrtj68oq6IJIoVsKJun3okIp1meQEyccSLds9y515NX8L51qQw8OeBekmWp6inlw+tS7cR6Olz4+fjUaVMrh1YssIal1R+xHjbpR4IMib5ayleneyZ3HT6lHUMgJ8c0FRbxsxsRrzD7towtgSW2C5QFHHxLmrqGWME4p6TVAnkuntfWTCXjg/2Q9SmN++fln3S9Cuj+v8NXzxShR1rXgYUh2geriinm8BwlVhFammVHUfdV7Ud3hjr6Ku69B77LmU+xW1iTPvpGkk6ju8LBhKiGVGU84o6ghrpqiVWTaLCMAxTXM4/L04Ra3bD/oMdbaPus2YNRKsjllg1svq/Ipai6KShZD1MsS03jwrbmbcG118pHA/auct6Wn21FLoi3Zz/fLRGQvFY9KZWGX75eMvo13tH5PLJxE+3YneHB91K4aVT4UD3N0japaQ4tJyXFEr6W4uKOqtIrFHQtBIFPuo1cpUxpbn+KjV5kcT5yjqNWL66UKLotLb+3jAnjeqMjp8+7ZtyxZk38N1dMTevUX1k16EQkVdh674nlXfhirquvulpwYv1o3Jt6q63jv7cbbnicPEPGrr0e11F0t5nLfmth8BvhpF7V3mh8cH+STqW7DeinohU6lVpbdARd2vJC290jc2mTztqV6ForYl01Wi7/qGHoZovei8p0x6x0FiF5Qp6p61uP0Lel6++HyzbnWQ5PD/UlYmq2e1nUptXdOts/q/rliV0ddDFLXiK06ElJu0zPX4qC0o6q2i7S4HP3BvdrSYR+2GhYfzqFuD42lXyyu+7rJ51BHXFvOo1xp17Trb9peuKNuFeS/DvtwC40D0PxL9pPVbDbtkZTKVjLVRhylqkZ+1X5xs5i4h5irGqPR19K23/5YbZe0Gk/vB2FGzwcLjrorWFLWS6IKjvhVFLf3YjROelckCNkJRzzHgFZO7i1qZbICcjpVGjnezQKkudWWy2JvQZzlX682/JWTxe1se9R1bSEx+Q5Gd4qKzkjLekjDKa0m7Z50fPwcrbwcTqmtNzg1S1Onbb+9/XvrS2t6bM486MX9bU6HNDO2NA0W9TYR62BIoWC0yPBC33hHMK3GP9FrfYvL2QZs9JYactb43lFgTm+lAbi1Eezbz2xcdIyXgYvN91MPkri2WxM9q+DzqP+XisetXepI2NlsJ2HYlaDQeW1kJTNlTqs9HnZPKt0kq0cWuTCYXV1Ozze5ZGhuhqMuUlT9JR32u1O5Z6Yz12k8UV2Kbq8wNJoaadViWou7dMco+YIbWG+qgnr4TT5QTWaCWQ7+ivrm7GnmmZXaD6QrhBUHggbq5uXt9sKu72G47nB2xvLU3xRLfyplg8bDbdpesTEUt9uXyJk6LlcnkWt9WSYZrdwc602zQFV/rW/FpbwiPu2JTMXitCOdz6iNfOaubKKg6Vv/ICdXuNtoJalUr48XCEEqe2Y96g1C7hvk+kF5hPKf9Wu8+hlOItVQWNdtw4cT6gsH5VCcvx1kx58pkm7DWd4O2DXUi6lu6so3/1ptHbVXr3vevTlh1Muo7loo9LxYSDxJ1RfXe97O5ds/yE0pKX097L3M3741hvRV1zj5JqXSTQtSrdhL5TEj9Arefti12atXnzDUy0mZjT12Q4fhLIq9Rvr4crddX5+ubciUUaIYE7sjxUYdL7PRuyB4b20j4YXyHkj6InsiA7z5aWOfACFpfZyr67dbZa9puPZ2tqGt/pvTzX37Ud7Dmmb/ud2I/aptQt1KajPT298HeJFHq5nwzBwJgw0guaQavnLgWTbudE23ivPYDkpuFuKuWhMe6xXsnt4t3S6Y51FVabMHn7QQ7LOq7r7sC8MrRQsCUhTa9j506sPc33mc/Jz/lkSOxCDK/qkyJGjWirTdCLX9p7niZBHott/lIm9UynK73lJVZ3acTAX3Sgj4g0qf1emcwqWaD11WfUZjzNRWuTAbLQy4kDgArB0UNAAAAABIU9cp5eLP/7OjnzY2+BnjNoKgBAAAAQIKiXjnN5luxuG4AAAAAAABYT1DUAAAAAAAAACWgqAEAAAAAAABKQFEDAAAAAAAAlICiBgAAAAAAACgBRQ0AAAAAAABQAooaAAAAAAAAoAQUNQAAAAAAAEAJ1T+zfwAAAAAAAABgKChqAAAAAAAAgBJQ1AAAAAAAAAAloKgBAAAAAAAASkBRAwAAAAAAAJTwf6p+bSagInTDAAAAAElFTkSuQmCC" alt="" /></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;maxn&nbsp;100010</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">#define</span><span style="color: #000000; ">&nbsp;maxm&nbsp;120</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;a[maxn],b[maxm];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;dp[maxn][maxm];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%s%s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,a,b);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n</span><span style="color: #000000; ">=</span><span style="color: #000000; ">strlen(a);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;m</span><span style="color: #000000; ">=</span><span style="color: #000000; ">strlen(b);<br />&nbsp;&nbsp;&nbsp;&nbsp;clr(dp);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][</span><span style="color: #000000; ">0</span><span style="color: #000000; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;j</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">m;j</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(a[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">b[j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j]</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">dp[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">dp[i</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">][j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">m;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">dp[i][m]</span><span style="color: #000000; ">*</span><span style="color: #000000; ">(n</span><span style="color: #000000; ">-</span><span style="color: #000000; ">i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%I64d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />}<br /></span></div><img src ="http://www.cppblog.com/ArcTan/aggbug/185930.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-08-01 19:39 <a href="http://www.cppblog.com/ArcTan/articles/185930.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 1837(DP背包)</title><link>http://www.cppblog.com/ArcTan/articles/184056.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Wed, 18 Jul 2012 06:46:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/184056.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/184056.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/184056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/184056.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/184056.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://poj.org/problem?id=1837一个简单的题目浪费了那么多时间啊，不行啊。怎样提高效率啊，thinking &amp; coding都不行啊。要理解清楚算法的每个细节啊。我擦啊，尼玛；阿。把背包九讲研究透吧！！！！！！！！！！少年啊wangs要注意啊：&nbsp;&nbsp; &nbsp;&nbsp; 1、做一个题目就要自己读完，理解完啊。&nbsp;&nbsp; &n...&nbsp;&nbsp;<a href='http://www.cppblog.com/ArcTan/articles/184056.html'>阅读全文</a><img src ="http://www.cppblog.com/ArcTan/aggbug/184056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-07-18 14:46 <a href="http://www.cppblog.com/ArcTan/articles/184056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva 12018 DP+离散化</title><link>http://www.cppblog.com/ArcTan/articles/174342.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Wed, 09 May 2012 13:28:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/174342.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/174342.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/174342.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/174342.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/174342.html</trackback:ping><description><![CDATA[<div>题目链接<br /><a href="http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=19242"><span style="font-family:Comic Sans MS;font-size:13px;">http://acm.hust.edu.cn:8080/judge/problem/viewProblem.action?id=19242</span></a></div><br />题目大意：<br />&nbsp;&nbsp; &nbsp;&nbsp; 切水果游戏，在屏幕上任意时刻，你可以切掉屏幕上所有的水果。如果切掉的水果数大于2，那所得分就是水果数，否则为0.<br /><br />&nbsp;&nbsp; &nbsp;&nbsp; 给n个水果序列[st,et]出现时间和结束时间，问最后最多能获得多少分。<br /><br />DP+离散化（不懂什么叫离散化！）<br />&nbsp;&nbsp; &nbsp;&nbsp; dp[i]=max{dp[j-1]+cute[j,i],1&lt;=j&lt;=i}<br />&nbsp;&nbsp; &nbsp;&nbsp; 以开始时间递增排序求cute[j,i]<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">math.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;x[</span><span style="color: #000000; ">1005</span><span style="color: #000000; ">],y[</span><span style="color: #000000; ">1005</span><span style="color: #000000; ">],dp[</span><span style="color: #000000; ">1005</span><span style="color: #000000; ">];<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;n,ans;<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;qxsort(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;l,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;r)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i,j,mid,tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">l;<br />&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">r;<br />&nbsp;&nbsp;&nbsp;&nbsp;mid</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x[(i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">j)</span><span style="color: #000000; ">/</span><span style="color: #000000; ">2</span><span style="color: #000000; ">];<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">j)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(x[i]</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">mid)&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(x[j]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">mid)&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000; ">--</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">j)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">x[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x[j]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y[i];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">y[j];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y[j]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">tmp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000; ">--</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(l</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">j)&nbsp;&nbsp;&nbsp;&nbsp;qxsort(l,j);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">r)&nbsp;&nbsp;&nbsp;&nbsp;qxsort(i,r);<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;max(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;b)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(a</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">b)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;a;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;b;<br />}<br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;work()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;i,j,s,now;<br />&nbsp;&nbsp;&nbsp;&nbsp;memset(dp,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">sizeof</span><span style="color: #000000; ">(dp));<br />&nbsp;&nbsp;&nbsp;&nbsp;qxsort(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,n);<br />&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">3</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n&nbsp;;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;x[i]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">x[i</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])&nbsp;</span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">i;j</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">&nbsp;;j</span><span style="color: #000000; ">--</span><span style="color: #000000; ">&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(x[j]</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">x[i]&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;y[j]</span><span style="color: #000000; ">&gt;=</span><span style="color: #000000; ">x[i])&nbsp;&nbsp;&nbsp;&nbsp;s</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">&nbsp;(now</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">3</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;now</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp[i]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(dp[i],dp[j</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">now);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans</span><span style="color: #000000; ">=</span><span style="color: #000000; ">max(ans,dp[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;t,i,cas</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">t);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;(t</span><span style="color: #000000; ">--</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">n);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #000000; ">;i</span><span style="color: #000000; ">&lt;=</span><span style="color: #000000; ">n&nbsp;;i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">x[i],</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">y[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;work();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Case&nbsp;#%d:&nbsp;%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">++</span><span style="color: #000000; ">cas,ans);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000;">;<br />}<br /></span></div><br />哎，真是弱爆了，看来dp题目真的很多很变态啊。要多想想了<br />还是，问题本质很重要！！！！<br /><br /><img src ="http://www.cppblog.com/ArcTan/aggbug/174342.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-05-09 21:28 <a href="http://www.cppblog.com/ArcTan/articles/174342.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>白书上的动态规划D---dp组合计数问题</title><link>http://www.cppblog.com/ArcTan/articles/173165.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 29 Apr 2012 11:11:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/173165.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/173165.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/173165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/173165.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/173165.html</trackback:ping><description><![CDATA[<div><h1><center><table bgcolor="#0060F0"><tbody><tr><td><strong><a name="SECTION0001000000000000000000">Coin Change</a>&nbsp;</strong></td></tr></tbody></table></center> </h1>  <p> Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent.    We want to make changes with these coins for a given amount of money.      </p><p>  </p><p> <br /> For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-cent coin,  two 5-cent coins and one 1-cent   coin,  one  5-cent  coin  and  six  1-cent  coins,  or  eleven  1-cent coins. So  there  are  four  ways of  making  changes  for  11  cents  with  the   above coins.    Note  that  we count  that  there  is  one way of making change  for zero cent.      </p><p>  </p><p> <br /> Write a program to find the total number of different ways of making  changes  for  any  amount  of  money  in  cents.    Your  program should be able to handle up to 7489 cents.  </p><p>  </p><h2><a name="SECTION0001001000000000000000"> Input</a>&nbsp; </h2> The input file contains any number of lines, each one consisting of a number for the amount of money in cents.  <p>  </p><h2><a name="SECTION0001002000000000000000"> Output</a>&nbsp; </h2> For each input line, output a line containing the number of different ways of making changes with the above 5 types of coins.  <p>  </p><h2><a name="SECTION0001003000000000000000"> Sample Input</a>&nbsp; </h2>  <p> </p><pre>11 26 </pre>  <p>  </p><h2><a name="SECTION0001004000000000000000"> Sample Output</a>&nbsp; </h2> 				 <pre>4 13 </pre>  <p>  </p><p> 题目大意：</p><p>&nbsp;给定1 5 10 25 50五种硬币，给定一个数，问用这些硬币有多少种不同的组合方式？</p><p>想想好像可以是一个方程组求解的问题嘛：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1+5*x2+10*x3+25*x4+50*x5=x0;</p><p>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 给定x0，一组满足条件的x&gt;=0就是解集。啊哈哈哈。可以高斯消元法咯。</p><p>不过，明显的计数问题：</p><p>dp[i][j]表示i可以由前j种硬币表示的方法数。</p><p>dp[i][j]=dp[i][j-1]+dp[i-coin[j]][j]&nbsp;&nbsp;&nbsp;&nbsp; i-coin[j]&gt;0</p><p>dp[i][j]=dp[i][j-1]+1&nbsp; i-coin[j]=0;</p><p>dp[i][j]=dp[i][j-1] i-coin[j]&lt;0</p><p><div><img src="data:image/png;base64,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" alt="" /></div>总结：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方程类问题，一定要先把方程写清楚！！！<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&lt;stdio.h&gt;<br />#include&lt;string.h&gt;<br />#include&lt;math.h&gt;<br />long&nbsp;long&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">7500</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">5</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">,</span><span style="color: #000000; ">coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">5</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">5</span><span style="color: #000000; ">,</span><span style="color: #000000; ">10</span><span style="color: #000000; ">,</span><span style="color: #000000; ">25</span><span style="color: #000000; ">,</span><span style="color: #000000; ">50</span><span style="color: #000000; ">}</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">int&nbsp;GetAns()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i</span><span style="color: #000000; ">,</span><span style="color: #000000; ">j</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;memset(dp</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">sizeof(dp))</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">0</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">2</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">3</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">4</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">2</span><span style="color: #008000; ">;</span><span style="color: #008000; ">i&lt;=7489&nbsp;;i++&nbsp;)</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">0</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;</span><span style="color: #008000; ">j&lt;5&nbsp;;j++&nbsp;)</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i-coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">+dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i-coin[j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">]</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i-coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />int&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;GetAns()</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;n)</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%lld\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">n</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">4</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">)</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">}<br /></span></div></div><br /><br />额额，dp是个好东西，该看看优化了！！！<img src ="http://www.cppblog.com/ArcTan/aggbug/173165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-04-29 19:11 <a href="http://www.cppblog.com/ArcTan/articles/173165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>白书上的动态规划D---dp组合计数问题</title><link>http://www.cppblog.com/ArcTan/articles/173166.html</link><dc:creator>wangs</dc:creator><author>wangs</author><pubDate>Sun, 29 Apr 2012 11:11:00 GMT</pubDate><guid>http://www.cppblog.com/ArcTan/articles/173166.html</guid><wfw:comment>http://www.cppblog.com/ArcTan/comments/173166.html</wfw:comment><comments>http://www.cppblog.com/ArcTan/articles/173166.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ArcTan/comments/commentRss/173166.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ArcTan/services/trackbacks/173166.html</trackback:ping><description><![CDATA[<div><h1><center><table bgcolor="#0060F0"><tbody><tr><td><strong><a name="SECTION0001000000000000000000">Coin Change</a>&nbsp;</strong></td></tr></tbody></table></center> </h1>  <p> Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent.    We want to make changes with these coins for a given amount of money.      </p><p>  </p><p> <br /> For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-cent coin,  two 5-cent coins and one 1-cent   coin,  one  5-cent  coin  and  six  1-cent  coins,  or  eleven  1-cent coins. So  there  are  four  ways of  making  changes  for  11  cents  with  the   above coins.    Note  that  we count  that  there  is  one way of making change  for zero cent.      </p><p>  </p><p> <br /> Write a program to find the total number of different ways of making  changes  for  any  amount  of  money  in  cents.    Your  program should be able to handle up to 7489 cents.  </p><p>  </p><h2><a name="SECTION0001001000000000000000"> Input</a>&nbsp; </h2> The input file contains any number of lines, each one consisting of a number for the amount of money in cents.  <p>  </p><h2><a name="SECTION0001002000000000000000"> Output</a>&nbsp; </h2> For each input line, output a line containing the number of different ways of making changes with the above 5 types of coins.  <p>  </p><h2><a name="SECTION0001003000000000000000"> Sample Input</a>&nbsp; </h2>  <p> </p><pre>11 26 </pre>  <p>  </p><h2><a name="SECTION0001004000000000000000"> Sample Output</a>&nbsp; </h2> 				 <pre>4 13 </pre>  <p>  </p><p> 题目大意：</p><p>&nbsp;给定1 5 10 25 50五种硬币，给定一个数，问用这些硬币有多少种不同的组合方式？</p><p>想想好像可以是一个方程组求解的问题嘛：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x1+5*x2+10*x3+25*x4+50*x5=x0;</p><p>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 给定x0，一组满足条件的x&gt;=0就是解集。啊哈哈哈。可以高斯消元法咯。</p><p>不过，明显的计数问题：</p><p>dp[i][j]表示i可以由前j种硬币表示的方法数。</p><p>dp[i][j]=dp[i][j-1]+dp[i-coin[j]][j]&nbsp;&nbsp;&nbsp;&nbsp; i-coin[j]&gt;0</p><p>dp[i][j]=dp[i][j-1]+1&nbsp; i-coin[j]=0;</p><p>dp[i][j]=dp[i][j-1] i-coin[j]&lt;0</p><p><div><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABR4AAAAfCAIAAAAOWUYSAAAKCElEQVR4nO2dPW6rTheH2VN66uzArRt2YMkriFiA27QoUiQvwFUkFygrSGelcIo0r4vITYq//BZ8zJnvAXIdx37Qo6ubgflgDIf5cc4M2f/+OwIAAAAAAADAaDI2NjY2NjY2NjY2NjY2NrZJ2+60AwAAAAAAAIDRIK0BAAAAAAAAJoG0BgAAAAAAAJgE0hoAAAAAAABgEkhrAAAAAAAAgEkgrQEAAAAAAAAmgbQGAAAAAAAAmATSGgAAAAAAAGASw6V1vbyT28O627XWdzTbci3y1k8ztaM2Sq5XcztRyzJ7qtPrAgizffzOspOkePn9VsFvU6/mhmU7K+sHhxlMazMGEOJ4Hqmuw+ar2srYZJGFRIv6S3iHN+au4TcpJPBV5s9Ztim3npTtW5495+VXt/ejyJ6zhuJDpbT/F1SvmXmkzUeRPWf529a1d1tusuy5qDy5IiXDIGp7gN893QK3YSCXzi+Yr6D1iNlklzgabo4SLH+9mt8ZZn/ouawfBrUqrvuSR2JW45Ovh+BJjRSbg6V1/TQza/Wcuf5sDgz+VNNdV89stVeH+X4qexwAEGb7+J3dH9Qj/P2QZyctBW6Q/WqWbD1/nOaxhLSGf8XYR2r9NBMZrQfufjW7CrUZGN5o77yu5Xwvje1bnm3yXIrnRlp3KZq0/irzVgkL3euQ1tty4xfnxmFuaV0VrXi2pLVqQ6BkGEi99D3OQrehP5fB+c1XrNk+m+wVR4PNUdzyd06FmJLyV62L20irQqcmfsd6NU9R167GJ18Pg/ozUWxODQhfP/hOW/vx6qdZ7CTtH7tezbWXK/5TCg0RzsrLMcu+y/fmz315f8of982uXshVC+kpPfaWulqcssWn2qtrPNPFuvjsdn0WMl3kkln6Zhitag9TpWnNu24vrimt+84UvQG3RvO6dPmwDL6O1UxZQrr9sFyu+veyrU3rng36m9rAO+B+1+xpjbSGBNIfqdouQ1e7Mq6XV+O4FviHN4FdTSev+oHj7KkWLhF5k+r+EHwDp225yfK3qtxk2WvVJjbadZM3KR5pLQqxpbXHj23QqXpbWve62uO1HlgRxEkWRdptOFpan918iWan2OS4wAlYqsRamhJGOClV1fvVLPKYsEnTfYbStsp0Nz50PUT884nCNsA0ae0X9+uHO8NlHbtw7RZbKZ6e0uv6XT6LXpHqXtBq0QraaqFpb3mAULOWLLdEuFldm6s9TM/yWSh1HZLW1UKI8/dDIQ67PlzS2uxquDE692/juxa2VUpcOUROTu9NmSu+6GHtlNb+Qhy7kNYQI/WRuhOjIltX7+wx0xD/wJ8h5LsIDGn0EJJGVHd9JUZsxm9Rr+ZX14FD+Srz56z4aPRzJ2Jb/VwWz0VleoZb0auJYUvfJjmTv8r8OS8/XFr9VBWbchsICB9UEaSQak/023C0tD63+ZLNTrHJUTkXVViRWnoNNVxai6otaZ3QsY5T073Whsp1SGJv48dLa29/povNkdK6C4X3tNt8Jq2Xd3ez+Sw4ChwrrS8rNEsJ1+3jd/54KFontqGBO16OvZATgnm304SfmVcd+X7IlZNcYlWnKvJLa29p14lTWutxB3BjKEVthFg3erh9bIiwbU96U44yweul+rOV1q3JauPPNUGu7QoV0j3GWp/YzQ/NIcJgab126eqda7Lixbzd/gEiw5uTEV1poA/L9OGmGvzZw9CbRynqTmPvTso1vX3Lm38zR7i4EL2WtK5eY97mRja/Vm43uDwmUE4z47p3tsMUAksemIeJmygx16+br3Bs9ghpHTJH8VrMAKVBXWGdi+z2UdHK5g8UdsqGGp98PaT25xCxOTEg3B1HYSl78zDjtYSni5PGAZfkst7tlGDbl/ff5XvnrH4/5MoXui/vHTHhXmltKV5xpCjKnDas60OV4pfWQuffAkhrMGijwWvz/5bK7fClO9bP6C1eGxCuvZR1iPZgIWa9zLWGFAZKa/+gxLPI2ZVdgZ4w0f1qFhrwpUlrGaVySQOY30POiK6KXqb2cverzDdl5fIMb9/yrJ+PPdxrrQ4YLa3t1dfgx/Cs6BS5DdPXgepSzmO+zGZPltauAtVwoY7UYpy43jPOosI/gZZlNh8jrbU21MuAug42fsD1kHhdDRKbU+daO65Ih7K3us/xynaUtL4sl/Vud+oE6vshb2TbyzFbfO5ejtIFrSR0itc6JK3FwVKoI60TICAcdPSQbCkqfkZaNxZvorSerfZIaxjHUGmt3uMYQ41xEwL/HI7hTXCotzvtkqW1rEK8NbtZlP9Zn9gs5G71muUbj07uFfXgudbt6mUaDudzQFpXBbr6n2KbqfhtmDTbRSSexXw5mj1NWqf0Q7AWhwPfJ6SHVz1qrrWzqW6f/LDGp4T9B05qoNj8CWntCXwXh1mR60nSOm3m/cW98f0ssu9iIaOsj0U30dqUrxMDwh1VN0cSEB7Ht4xZftUzzMGLWhtcs9LC1dyaLPEVIk+6T3KrouT0JDWqDgaEOwrRRfhtD80hzshlzOwBxw1JayvCMHaOw6T1FffeIBrPcy+A1Z/Sk9x+5kquFt5mUZ7npBXCPUrbqkscpktrtbdJZ4r1P8R8w5V0G4Yc0b9jvtzNnrCMWVo/JNcSSh9VdcricE63a6q0HtT4eGBC8KSGis2h0rpezcVJ2u+zfTOI9N5xtdJ19YTnJFzobKU2SFsuSJZpa5v18rVZ3Dsqrc3VxfLe762c4Wbh/mXMdEn5cpTrjd/0MmZ8fOu2kZ/tbZBC11o2TPMzJ6Rryxd5dolcnmXM+iNd72uR1hAj/EgVhFWl+zX3n78CQ8Mb53JunkISpHW9tD7/c4GDmbNh+YQbJ7Y5/9nUsfJr1R5JLMuPfX16hLQWH7Xm09Y/hfYlJF2hBW7DQC6D85uvkPWI22RP1PQgi5Fm+VOkdVrVaZ/I9rhUxW9hlBMq1mh88Howy4mc1HD7POa71tpozu6U0JID5gCxP2dtcGouvO5IT/7c2S9gBBW7/uyCt5O81jtjTnWprxAupm1rPmfPx7f00hafN/3xLa33rvx8IUgbDS4NWmt8HN/B0oxsQrq0VNbHt6QR6z3ncklht9nk41swhsQVYryhyw/rnfPNzsWFj03tHN0auGaLuAdbiV5rY9hzy7oaQMO4DU1F5LkN/bki5f978xWxHn6b7BNH6ebIfdbpLx2GnYsI/UvxV/t+L/+wZ4C0Dl4PLsXu7c8xYnNqQDicn/47XgDw1zDnWgMAAADAdYC0/gu8HJWWvrEZ0QDXBdIaAAAA4DpBWv8FmhnRrqhvAPhTIK0BAAAArhOkNQAAAAAAAMAkkNYAAAAAAAAAk0BaAwAAAAAAAEwCaQ0AAAAAAAAwCaQ1AAAAAAAAwCSyw+kAAAAAAAAAAKNBWgMAAAAAAABMAmkNAAAAAAAAMIn/A77IgCY16q2TAAAAAElFTkSuQmCC" alt="" /></div>总结：</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方程类问题，一定要先把方程写清楚！！！<br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">#include&lt;stdio.h&gt;<br />#include&lt;string.h&gt;<br />#include&lt;math.h&gt;<br />long&nbsp;long&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">7500</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">5</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">,</span><span style="color: #000000; ">coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">5</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">{</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">5</span><span style="color: #000000; ">,</span><span style="color: #000000; ">10</span><span style="color: #000000; ">,</span><span style="color: #000000; ">25</span><span style="color: #000000; ">,</span><span style="color: #000000; ">50</span><span style="color: #000000; ">}</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">int&nbsp;GetAns()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i</span><span style="color: #000000; ">,</span><span style="color: #000000; ">j</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;memset(dp</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">sizeof(dp))</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">0</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">2</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">3</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">1</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">4</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">2</span><span style="color: #008000; ">;</span><span style="color: #008000; ">i&lt;=7489&nbsp;;i++&nbsp;)</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">0</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(j</span><span style="color: #000000; ">=</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;</span><span style="color: #008000; ">j&lt;5&nbsp;;j++&nbsp;)</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i-coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">+dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i-coin[j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">]</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(i-coin</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">==</span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">=</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">i</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">j-1</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />int&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;GetAns()</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;n)</span><span style="color: #000000; ">==</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%lld\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">dp</span><span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">n</span><span style="color: #800000; font-weight: bold; ">][</span><span style="color: #800000; ">4</span><span style="color: #800000; font-weight: bold; ">]</span><span style="color: #000000; ">)</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #008000; ">;<br /></span><span style="color: #000000; ">}<br /></span></div></div><br /><br />额额，dp是个好东西，该看看优化了！！！<img src ="http://www.cppblog.com/ArcTan/aggbug/173166.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ArcTan/" target="_blank">wangs</a> 2012-04-29 19:11 <a href="http://www.cppblog.com/ArcTan/articles/173166.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>