﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-ACM___________________________-随笔分类-ACM ( 数论 )</title><link>http://www.cppblog.com/MiYu/category/14425.html</link><description>                             ______________白白の屋</description><language>zh-cn</language><lastBuildDate>Sun, 19 Sep 2010 04:47:59 GMT</lastBuildDate><pubDate>Sun, 19 Sep 2010 04:47:59 GMT</pubDate><ttl>60</ttl><item><title>HDOJ 1999 HDU 1999 不可摸数 ACM 1999 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/15/123511.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sun, 15 Aug 2010 10:00:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/15/123511.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/123511.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/15/123511.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/123511.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/123511.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1999"><u><font color=#810081>http://acm.hdu.edu.cn/showproblem.php?pid=1999</font></u></a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">不可摸数<br><br>Time&nbsp;Limit:&nbsp;</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">&nbsp;MS&nbsp;(Java</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Others)&nbsp;&nbsp;&nbsp;&nbsp;Memory&nbsp;Limit:&nbsp;</span><span style="COLOR: #000000">65536</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">32768</span><span style="COLOR: #000000">&nbsp;K&nbsp;(Java</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Others)<br>Total&nbsp;Submission(s):&nbsp;</span><span style="COLOR: #000000">2613</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Accepted&nbsp;Submission(s):&nbsp;</span><span style="COLOR: #000000">694</span><span style="COLOR: #000000"><br><br><br>Problem&nbsp;Description<br>s(n)是正整数n的真因子之和，即小于n且整除n的因子和.例如s(</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">16</span><span style="COLOR: #000000">.如果任何<br>数m，s(m)都不等于n,则称n为不可摸数.<br>&nbsp;<br><br>Input<br>包含多组数据，首先输入T,表示有T组数据.每组数据1行给出n(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">)是整数。<br>&nbsp;<br><br>Output<br>如果n是不可摸数，输出yes，否则输出no<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">8</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br>yes<br>yes<br>no</span></div>
<br>题目分析:
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium Simsun; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="LINE-HEIGHT: 17px; FONT-FAMILY: Verdana, 'BitStream vera Sans', Tahoma, Helvetica, sans-serif; COLOR: rgb(85,85,85); FONT-SIZE: 12px" class=Apple-style-span>标准的筛选法。求出每个数的<a style="COLOR: rgb(41,112,166); TEXT-DECORATION: none" href="http://www.wutianqi.com/?p=957">因子和</a>，<br><br>然后看因子和是否在1000以内，是的话就证明等于因子和的这个数是不可摸数。</span></span></div>
</span><br>代码如下: (&nbsp;&nbsp;奋斗哥代码&nbsp;&nbsp;&nbsp; 0rz...................&nbsp;)<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</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&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br>&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;sum[</span><span style="COLOR: #000000">1000001</span><span style="COLOR: #000000">],&nbsp;sign[</span><span style="COLOR: #000000">1001</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;nCases,&nbsp;num;<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">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">nCases);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">500000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">i;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1000000</span><span style="COLOR: #000000">;&nbsp;j&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum[j]&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1000000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(sum[i]&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sign[sum[i]]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(nCases</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">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">num);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(sign[num])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">no\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">yes\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/123511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-15 18:00 <a href="http://www.cppblog.com/MiYu/archive/2010/08/15/123511.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ 1286 HDU 1286 找新朋友 ACM 1286 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/13/123386.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 13 Aug 2010 14:58:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/13/123386.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/123386.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/13/123386.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/123386.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/123386.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1><u>______________白白の屋</u></font></a><br><br>题目描述:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1286">http://acm.hdu.edu.cn/showproblem.php?pid=1286</a><br>题目地址:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">找新朋友<br><br>Time&nbsp;Limit:&nbsp;</span><span style="COLOR: #000000">2000</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">&nbsp;MS&nbsp;(Java</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Others)&nbsp;&nbsp;&nbsp;&nbsp;Memory&nbsp;Limit:&nbsp;</span><span style="COLOR: #000000">65536</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">32768</span><span style="COLOR: #000000">&nbsp;K&nbsp;(Java</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Others)<br>Total&nbsp;Submission(s):&nbsp;</span><span style="COLOR: #000000">1868</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Accepted&nbsp;Submission(s):&nbsp;</span><span style="COLOR: #000000">809</span><span style="COLOR: #000000"><br><br><br>Problem&nbsp;Description<br>新年快到了，&#8220;猪头帮协会&#8221;准备搞一个聚会，已经知道现有会员N人，把会员从1到N编号，其中会长的号码是N号，凡是和会长是老朋友的，那么该会员的号码肯定和N有大于1的公约数，否则都是新朋友，现在会长想知道究竟有几个新朋友？请你编程序帮会长计算出来。<br>&nbsp;<br><br>Input<br>第一行是测试数据的组数CN（Case&nbsp;number，</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">CN</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">），接着有CN行正整数N（</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">32768</span><span style="COLOR: #000000">），表示会员人数。<br>&nbsp;<br><br>Output<br>对于每一个N，输出一行新朋友的人数，这样共有CN行输出。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">25608</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">24027</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">7680</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">16016</span><span style="COLOR: #000000"><br></span></div>
<br>题目分析:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">这题用 gcd 的话,&nbsp; 就 TLE 了,&nbsp; 很无语, 所以只能用筛法了,&nbsp; 因为 num如果能整除 i&nbsp; ,i &gt; 1, 那么对i 的倍数, 肯定有大于1的公约数.<br>其实题目就是求 和 num 互质 的 数的个数,&nbsp; 可以使用 euler 公式, 0ms 过.<br>欧拉公式:<br><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="LINE-HEIGHT: 24px; FONT-FAMILY: arial; FONT-SIZE: 14px" class=Apple-style-span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果n的标准素因子分解式是p1^a1*p2^a2*&#8230;&#8230;*pm^am，其中众pj(j=1,2,&#8230;&#8230;,m)都是素数，<br>而且两两不等。则有　　&#966;(n)=n(1-1/p1)(1-1/p2)&#8230;&#8230;(1-1/pm)<br>&#966;(n) 为 小于 n ,与n互质的数的个数.</span></span></div>
<br>筛法代码:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;p[</span><span style="COLOR: #000000">40000</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;euler&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;memset&nbsp;(&nbsp;p&nbsp;,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(p)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;cnt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</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;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;num&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;num&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;p[i]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&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;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;num;&nbsp;j&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;i&nbsp;)&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;p[j]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p[j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;num&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;cnt&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;T;<br>&nbsp;&nbsp;&nbsp;&nbsp;scanf&nbsp;(&nbsp;</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&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;T&nbsp;</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;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf&nbsp;(&nbsp;</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">num&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,euler&nbsp;(&nbsp;num&nbsp;)&nbsp;);<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">;&nbsp;<br>}<br></span></div>
<br>欧拉代码: (&nbsp;AC_Quester 神牛代码&nbsp; &lt;----0rz &nbsp;)<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdio</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdlib</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstring</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;eular(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ret</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,i;<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">2</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(n</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">i,ret</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(n</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">i,ret</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(n</span><span style="COLOR: #000000">&gt;</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;ret</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n&nbsp;,a&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">while</span><span style="COLOR: #000000">(n</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;&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">a);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;res&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;eular(a);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,res);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&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>
</span>
<img src ="http://www.cppblog.com/MiYu/aggbug/123386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-13 22:58 <a href="http://www.cppblog.com/MiYu/archive/2010/08/13/123386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 1133 Buy the Ticket ACM 1133 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/08/122676.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sun, 08 Aug 2010 09:20:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/08/122676.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122676.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/08/122676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122676.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122676.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址 :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1133">http://acm.hdu.edu.cn/showproblem.php?pid=1133</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>The&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Harry&nbsp;Potter&nbsp;and&nbsp;the&nbsp;Goblet&nbsp;of&nbsp;Fire</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;will&nbsp;be&nbsp;on&nbsp;show&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;the&nbsp;next&nbsp;few&nbsp;days.&nbsp;As&nbsp;a&nbsp;crazy&nbsp;fan&nbsp;of&nbsp;Harry&nbsp;Potter,&nbsp;you&nbsp;will&nbsp;go&nbsp;to&nbsp;the&nbsp;cinema&nbsp;and&nbsp;have&nbsp;the&nbsp;first&nbsp;sight,&nbsp;won&#8217;t&nbsp;you</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br><br>Suppose&nbsp;the&nbsp;cinema&nbsp;only&nbsp;has&nbsp;one&nbsp;ticket</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">office&nbsp;and&nbsp;the&nbsp;price&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;per</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">ticket&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">&nbsp;dollars.&nbsp;The&nbsp;queue&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;buying&nbsp;the&nbsp;tickets&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;consisted&nbsp;of&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;persons&nbsp;(m&nbsp;persons&nbsp;each&nbsp;only&nbsp;has&nbsp;the&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">dollar&nbsp;bill&nbsp;and&nbsp;n&nbsp;persons&nbsp;each&nbsp;only&nbsp;has&nbsp;the&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">dollar&nbsp;bill).<br><br>Now&nbsp;the&nbsp;problem&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;you&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;to&nbsp;calculate&nbsp;the&nbsp;number&nbsp;of&nbsp;different&nbsp;ways&nbsp;of&nbsp;the&nbsp;queue&nbsp;that&nbsp;the&nbsp;buying&nbsp;process&nbsp;won</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">t&nbsp;be&nbsp;stopped&nbsp;from&nbsp;the&nbsp;first&nbsp;person&nbsp;till&nbsp;the&nbsp;last&nbsp;person.&nbsp;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">Note:&nbsp;initially&nbsp;the&nbsp;ticket</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">office&nbsp;has&nbsp;no&nbsp;money.&nbsp;<br><br>The&nbsp;buying&nbsp;process&nbsp;will&nbsp;be&nbsp;stopped&nbsp;on&nbsp;the&nbsp;occasion&nbsp;that&nbsp;the&nbsp;ticket</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">office&nbsp;has&nbsp;no&nbsp;</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">dollar&nbsp;bill&nbsp;but&nbsp;the&nbsp;first&nbsp;person&nbsp;of&nbsp;the&nbsp;queue&nbsp;only&nbsp;has&nbsp;the&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">dollar&nbsp;bill.<br>&nbsp;<br><br>Input<br>The&nbsp;input&nbsp;file&nbsp;contains&nbsp;several&nbsp;test&nbsp;cases.&nbsp;Each&nbsp;test&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;made&nbsp;up&nbsp;of&nbsp;two&nbsp;integer&nbsp;numbers:&nbsp;m&nbsp;and&nbsp;n.&nbsp;It&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;terminated&nbsp;by&nbsp;m&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">.&nbsp;Otherwise,&nbsp;m,&nbsp;n&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">.<br>&nbsp;<br><br>Output<br>For&nbsp;each&nbsp;test&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">,&nbsp;first&nbsp;print&nbsp;the&nbsp;test&nbsp;number&nbsp;(counting&nbsp;from&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;one&nbsp;line,&nbsp;then&nbsp;output&nbsp;the&nbsp;number&nbsp;of&nbsp;different&nbsp;ways&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;another&nbsp;line.<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br>Test&nbsp;#</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #000000">6</span><span style="COLOR: #000000"><br>Test&nbsp;#</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #000000">18</span><span style="COLOR: #000000"><br>Test&nbsp;#</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #000000">180</span></div>
<br><span style="COLOR: red; FONT-SIZE: 18pt">卡特兰数的应用~~~&nbsp; ^_^</span><br><span style="COLOR: #ff6600">1133 公式推导如下 :</span><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>(&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;化简即&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><br>推导过程如下&nbsp;:<br><br>m个人拿50，n个人拿100&nbsp;<br><br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;所以如果&nbsp;n&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;m，那么排序方法数为&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;这一点很容易想清楚&nbsp;<br><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;现在我们假设&nbsp;拿50的人用&nbsp;&#8216;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&#8217;表示，&nbsp;拿100的人用&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;表示。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果有这么一个序列&nbsp;</span><span style="COLOR: #000000">0101101001001111</span><span style="COLOR: #000000">.&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当第K个位置出现1的个数多余0的个数时就是一个不合法序列了<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设m</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">3的一个序列是：</span><span style="COLOR: #000000">0110100</span><span style="COLOR: #000000">&nbsp;显然，它不合法，&nbsp;现在我们把它稍微变化一下：&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把第二个1（这个1前面的都是合法的）后面的所有位0变成1，1变成0&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就得到&nbsp;</span><span style="COLOR: #000000">0111011</span><span style="COLOR: #000000">&nbsp;这个序列1的数量多于0的数量，&nbsp;显然不合法，&nbsp;但现在的关键不是看这个序列是不是合法的&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关键是：它和我们的不合法序列&nbsp;</span><span style="COLOR: #000000">0110100</span><span style="COLOR: #000000">&nbsp;成一一对应的关系&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也就是说任意一个不合法序列(m个0，n个1)，&nbsp;都可以由另外一个序列(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个0和m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1个1)得到&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另外我们知道，一个序列要么是合法的，要么是不合法的&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以，合法序列数量&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;序列总数量&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;不合法序列的总量&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;序列总数可以这样计算m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;n&nbsp;个位置出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">，&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不合法序列的数量就是：&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;个位置出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后每个人都是不一样的，所以需要全排列&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以最后的公式为 :&nbsp; (&nbsp;C(m<span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;化简即&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><br><br>推广:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果原来有p张50元的话,那么不合法的序列的数量应该是:任意一个不合法序列(m个0，n个1)，<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;都可以由另外一个序列(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个0和m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p个1)得到,所以是m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p&nbsp;个位置<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p)&nbsp;接下来的化简就不推了.<br></span></div>
<br><br><span style="COLOR: #ff6600; FONT-SIZE: 24pt">代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;100</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;BASE&nbsp;10000</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;multiply(</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;Max,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数乘小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,array</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">Max</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">BASE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;BASE;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>&nbsp;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;divide(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数除小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,div</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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Max;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">BASE&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">%=</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fact[</span><span style="COLOR: #000000">205</span><span style="COLOR: #000000">][MAX];<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setFact&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fact[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][MAX</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;fact[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][MAX</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy&nbsp;(&nbsp;fact[i]&nbsp;,&nbsp;fact[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;,&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiply&nbsp;(&nbsp;fact[i]&nbsp;,&nbsp;MAX&nbsp;,&nbsp;i&nbsp;);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;outPut&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ctl[MAX]&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ctl[i]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">去前导0&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ctl[i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%04d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ctl[i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar&nbsp;(&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;);&nbsp;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;res[MAX];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;M,N;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ca&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setFact();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;M&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;,&nbsp;M&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;N&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Test&nbsp;#%d:\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ca</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;N&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;M&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy&nbsp;(&nbsp;res&nbsp;,&nbsp;fact[M</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N]&nbsp;,&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;阶乘&nbsp;(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiply&nbsp;(&nbsp;res,&nbsp;MAX,&nbsp;M&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;N&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;divide&nbsp;(&nbsp;res,&nbsp;MAX,&nbsp;M&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPut&nbsp;(&nbsp;res&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&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>
</span></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-08 17:20 <a href="http://www.cppblog.com/MiYu/archive/2010/08/08/122676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 1023 1130 1133 1134 2067 ACM 1023 1130 1133 1134 2067 IN HDU ( 卡特兰数 专题 catalan )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/08/122674.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sun, 08 Aug 2010 09:08:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/08/122674.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122674.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/08/122674.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122674.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122674.html</trackback:ping><description><![CDATA[MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋<br></a><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000; FONT-SIZE: 36pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: red"> 卡特兰数专题</span></span></div>
<br><strong>更多卡特兰数资料 请看</strong>&nbsp;&nbsp;<a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html"><span style="FONT-SIZE: 24pt">卡特兰数</span></a><br><span style="FONT-SIZE: 24pt">&nbsp;<strong><br></strong><span style="COLOR: red">HDU 1023 1130&nbsp; 1134&nbsp; 2067</span> <span style="FONT-SIZE: 14pt"><strong>都是标准的卡特兰数, 具体说明请见</strong></span> </span><a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html">卡特兰数</a>&nbsp; ,<strong><span style="FONT-SIZE: 14pt">只是有一点需要注意, 在35以</span>下的catalan数<br><br>可以</strong><strong>直接使用 <span style="COLOR: red">long long 或 __int64</span> 提交的, 但是当 <span style="COLOR: red">N 超过35</span> 之后, 这就需要<span style="COLOR: red">大数</span>了.&nbsp; <br><br>下面是 <span style="COLOR: red">2067 的 long long</span> 代码 ,详细请见&nbsp; (&nbsp;&nbsp;</strong><a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122569.html"><strong>2067 小兔的棋盘 解题报告</strong></a><strong>&nbsp;) 没有使用递归式 , 直接用的catalan 的 迭代式.&nbsp;:</strong><br><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></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>typedef&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;int64;<br>int64&nbsp;f[</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ca</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">int</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;,&nbsp;N&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;ca;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;j&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;j&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i][j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;f[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i][j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;f[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;f[i][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;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d&nbsp;%I64d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ca,&nbsp;N,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;f[N</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][N]&nbsp;);<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><br></span></div>
<br><br><span style="COLOR: #ff6600">除了 2067 外, 其他的题目均是大数的类型, 在这里, 各位 ACMer , 请出你们的大数模板吧 . <br><br>或者某些代码牛人可以自己手打&nbsp;&lt;-------0rz <br><br>写好代码后 只需按题目要求格式做相应的改变, 便能直接AC.&nbsp; 1133 稍微有点不同. 会在<br><br>最后给出它的解题报告.<br><br>1023&nbsp; 1130 1134 直接使用 catalan数 的递归式 ,代码如下, 使用的是高精度乘法 &nbsp;(&nbsp;需要在输入结束控制方面根据各题做相应变化 ) :</span><br><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></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">#define</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;105</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;BASE&nbsp;10000</span><span style="COLOR: #000000"><br>typedef&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;myType[MAX</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;multiply&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数乘小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,array</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">Max</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">BASE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;BASE;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>&nbsp;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;divide&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数除小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,div</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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Max;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">BASE&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">%=</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;outPut&nbsp;(&nbsp;myType&nbsp;ctl[MAX]&nbsp;,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ctl[N][i]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">去前导0&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;ctl[N][i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%04d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ctl[N][i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;&nbsp;<br>}<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setNum&nbsp;(&nbsp;myType&nbsp;ctl[MAX]&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset&nbsp;(&nbsp;ctl[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">],&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ctl[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][MAX</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">101</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy&nbsp;(&nbsp;ctl[i],&nbsp;ctl[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">],&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiply&nbsp;(&nbsp;ctl[i],&nbsp;MAX,&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;divide&nbsp;(&nbsp;ctl[i],&nbsp;MAX,&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}<br>myType&nbsp;ctl[MAX];&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;setNum&nbsp;(&nbsp;ctl&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;这里根据各题要求需要做相应变化</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPut&nbsp;(&nbsp;ctl,&nbsp;N&nbsp;);&nbsp;<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><br></span></div>
<br><br><span style="COLOR: #ff6600">1133 公式推导如下 :</span><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>(&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;化简即&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><br>推导过程如下&nbsp;:<br><br>m个人拿50，n个人拿100&nbsp;<br><br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;所以如果&nbsp;n&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;m，那么排序方法数为&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;这一点很容易想清楚&nbsp;<br><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">:&nbsp;&nbsp;&nbsp;&nbsp;现在我们假设&nbsp;拿50的人用&nbsp;&#8216;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&#8217;表示，&nbsp;拿100的人用&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;表示。<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果有这么一个序列&nbsp;</span><span style="COLOR: #000000">0101101001001111</span><span style="COLOR: #000000">.&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当第K个位置出现1的个数多余0的个数时就是一个不合法序列了<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设m</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">3的一个序列是：</span><span style="COLOR: #000000">0110100</span><span style="COLOR: #000000">&nbsp;显然，它不合法，&nbsp;现在我们把它稍微变化一下：&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把第二个1（这个1前面的都是合法的）后面的所有位0变成1，1变成0&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就得到&nbsp;</span><span style="COLOR: #000000">0111011</span><span style="COLOR: #000000">&nbsp;这个序列1的数量多于0的数量，&nbsp;显然不合法，&nbsp;但现在的关键不是看这个序列是不是合法的&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关键是：它和我们的不合法序列&nbsp;</span><span style="COLOR: #000000">0110100</span><span style="COLOR: #000000">&nbsp;成一一对应的关系&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;也就是说任意一个不合法序列(m个0，n个1)，&nbsp;都可以由另外一个序列(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个0和m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1个1)得到&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另外我们知道，一个序列要么是合法的，要么是不合法的&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以，合法序列数量&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;序列总数量&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;不合法序列的总量&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;序列总数可以这样计算m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;n&nbsp;个位置出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">，&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不合法序列的数量就是：&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;个位置出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后每个人都是不一样的，所以需要全排列&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所以最后的公式为 :&nbsp; (&nbsp;C(m<span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;n)&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;m</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;化简即&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><br><br>推广:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果原来有p张50元的话,那么不合法的序列的数量应该是:任意一个不合法序列(m个0，n个1)，<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;都可以由另外一个序列(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个0和m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p个1)得到,所以是m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n&nbsp;个位置中，&nbsp;选择&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p&nbsp;个位置<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;出来填上&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;所以是&nbsp;C(m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">n,&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">p)&nbsp;接下来的化简就不推了.<br></span></div>
<br><br><span style="COLOR: #ff6600; FONT-SIZE: 24pt">代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #008000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span></span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;100</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;BASE&nbsp;10000</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;multiply(</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;Max,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数乘小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,array</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">Max</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">b</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;array</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">BASE;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;BASE;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>&nbsp;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;divide(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Max,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;b)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">大数除小数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,div</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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">Max;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">BASE&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;div&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;div&nbsp;</span><span style="COLOR: #000000">%=</span><span style="COLOR: #000000">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;fact[</span><span style="COLOR: #000000">205</span><span style="COLOR: #000000">][MAX];<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setFact&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fact[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][MAX</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;fact[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][MAX</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy&nbsp;(&nbsp;fact[i]&nbsp;,&nbsp;fact[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;,&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiply&nbsp;(&nbsp;fact[i]&nbsp;,&nbsp;MAX&nbsp;,&nbsp;i&nbsp;);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;outPut&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ctl[MAX]&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;ctl[i]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">去前导0&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ctl[i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;MAX&nbsp;)&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%04d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ctl[i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar&nbsp;(&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">&nbsp;);&nbsp;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;res[MAX];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;M,N;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ca&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setFact();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;M&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;,&nbsp;M&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;N&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Test&nbsp;#%d:\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ca</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;N&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;M&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memcpy&nbsp;(&nbsp;res&nbsp;,&nbsp;fact[M</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N]&nbsp;,&nbsp;MAX&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">sizeof</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;)&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//阶乘&nbsp;(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multiply&nbsp;(&nbsp;res,&nbsp;MAX,&nbsp;M&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;N&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;divide&nbsp;(&nbsp;res,&nbsp;MAX,&nbsp;M&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//(&nbsp;m&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;n&nbsp;)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(&nbsp;m</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outPut&nbsp;(&nbsp;res&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&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></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-08 17:08 <a href="http://www.cppblog.com/MiYu/archive/2010/08/08/122674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>错排公式 ( ACM 数论 组合 )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/08/122615.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sun, 08 Aug 2010 00:58:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/08/122615.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122615.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/08/122615.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122615.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122615.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span></p>
<p><span style="COLOR: #ff6600; FONT-SIZE: 18pt">错排公式:</span></p>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; COLOR: #ff6600; FONT-SIZE: 14pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">错排公式<br><br>目录<br>错排公式的由来<br>递推的方法推导错排公式<br>容斥原理<br>简化公式<br>&nbsp;<br><br>错排公式的由来<br><br>　　pala提出的问题:&nbsp;十本不同的书放在书架上。现重新摆放，使每本书都不在原来放的位置。有几种摆法？<br>　　这个问题推广一下，就是错排问题:&nbsp;n个有序的元素应有n！种不同的排列。如若一个排列式的所有的元素都不在原来的位置上，则称这个排列为错排。<br>递推的方法推导错排公式<br><br>　　当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用M(n)表示,那么M(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)就表示n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个编号元素放在n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个编号位置,各不对应的方法数,其它类推.<br>　　第一步,把第n个元素放在一个位置,比如位置k,一共有n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1种方法;<br>　　第二步,放编号为k的元素,这时有两种情况.</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,把它放到位置n,那么,对于剩下的n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2个元素,就有M(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)种方法;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,不把它放到位置n,这时,对于这n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个元素,有M(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)种方法;<br>　　综上得到<br>　　M(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)[M(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">M(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)]<br>　　特殊地，M(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,M(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br>　　下面通过这个递推关系推导通项公式:<br>　　为方便起见，设M(k)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">k</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">N(k),&nbsp;(k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&#8230;,n)<br>　　则N(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,N(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br>　　n</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">3时,n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">N(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br>　　即&nbsp;nN(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br>　　于是有N(n)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=-</span><span style="COLOR: #000000">[N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)]</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n)[</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)][</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)]&#8230;(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)[N(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">N(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　因此<br>　　N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">N(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　N(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">N(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　相加，可得<br>　　N(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">&#8230;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　因此<br>　　M(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">[(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">&#8230;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">]<br>　　可以得到<br>　　错排公式为M(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">&#8230;..</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">)<br>容斥原理<br><br>　　正整数1、</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">、</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">、&#8230;&#8230;、n的全排列有n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">种，其中第k位是k的排列有（n</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">，当k取1、</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">、</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">、&#8230;&#8230;、n时，共有n</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">（n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">种排列，由于是错排，这些排列应排除，但是此时把同时有两个数不错排的排列多排除了一次，应补上；在补上时，把同时有三个数不错排的排列多补上了一次，应排除；&#8230;&#8230;；继续这一过程，得到错排的排列种数为<br>　　M(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">&#8230;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">sigma(k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">n)&nbsp;(</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">k</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">k</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　即M(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">..</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">]<br>　　注:sigma表示连加符号,(k</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">n)是连加的范围<br>简化公式<br><br>　　另外：书上的错排公式为Dn</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">!+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">!-</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/dot.gif">..</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">),此公式算n很大时就很不方便．后来发现它可以化简为１个优美的式子Dn</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">[n</span><span style="COLOR: #000000">!/</span><span style="COLOR: #000000">e</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">0.5</span><span style="COLOR: #000000">],[x]为取整函数．<br>　　公式证明较简单．观察一般书上的公式，可以发现e</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1的前项与之相同，然后作比较可得</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">Dn</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">e</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">0.5</span><span style="COLOR: #000000">,于是就得到这个简单而优美的公式（此仅供参考）</span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/122615.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-08 08:58 <a href="http://www.cppblog.com/MiYu/archive/2010/08/08/122615.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>卡特兰数 Catalan数 ( ACM 数论 组合 )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 13:51:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122573.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122573.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122573.html</trackback:ping><description><![CDATA[
<div style="border-left-color: rgb(204, 204, 204); padding-bottom: 4px; background-color: rgb(238, 238, 238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 14pt; word-break: break-all; padding-top: 4px; "><span style="COLOR: #000000"><span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: 16px sans-serif; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" ><span style="LINE-HEIGHT: 24px" >
<h1 style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: rgb(170,170,170) 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.2em; MARGIN: 0px 0px 0.1em; WIDTH: auto; COLOR: black; FONT-SIZE: 1.6em; FONT-WEIGHT: normal; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" id="firstHeading" class="firstHeading"><span style="COLOR: red; FONT-SIZE: 24pt">维基百科资料</span>:</h1>
<p style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: rgb(170,170,170) 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.2em; MARGIN: 0px 0px 0.1em; WIDTH: auto; COLOR: black; FONT-SIZE: 1.6em; FONT-WEIGHT: normal; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" class="firstHeading">&nbsp;</p>
<h1 style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: rgb(170,170,170) 1px solid; PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.2em; MARGIN: 0px 0px 0.1em; WIDTH: auto; COLOR: black; FONT-SIZE: 1.6em; FONT-WEIGHT: normal; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" class="firstHeading">卡塔兰数</h1>
<div style="position: relative; line-height: 1.5em; width: 1232px; font-size: 15px; " id="bodyContent">
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em"><strong>卡塔兰数</strong>是<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="mw-redirect" title="组合数学" href="http://www.cppblog.com/zh-cn/%E7%B5%84%E5%90%88%E6%95%B8%E5%AD%B8">组合数学</a>中一个常出现在各种计数问题中出现的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="数列" href="http://www.cppblog.com/zh-cn/%E6%95%B0%E5%88%97">数列</a>。由以<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="mw-redirect" title="比利时" href="http://www.cppblog.com/zh-cn/%E6%AF%94%E5%88%A9%E6%99%82">比利时</a>的数学家<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="欧仁&#183;查理&#183;卡塔兰（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E6%AC%A7%E4%BB%81%C2%B7%E6%9F%A5%E7%90%86%C2%B7%E5%8D%A1%E5%A1%94%E5%85%B0&amp;action=edit&amp;redlink=1">欧仁&#183;查理&#183;卡塔兰</a><span class="Apple-converted-space">&nbsp;</span>(<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="1814年" href="http://www.cppblog.com/zh-cn/1814%E5%B9%B4">1814</a>&#8211;<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="1894年" href="http://www.cppblog.com/zh-cn/1894%E5%B9%B4">1894</a>)命名。</p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">卡塔兰数的一般项公式为<span class="Apple-converted-space">&nbsp;</span><img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; MARGIN: 0px; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_n = \frac{1}{n+1}{2n \choose n} = \frac{(2n)!}{(n+1)!n!}" src="http://upload.wikimedia.org/math/d/1/1/d118d8cea7b639dfd5244fcba65910cf.png">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另类递归式：&nbsp; h(n)<span style="COLOR: #000000">=</span><span style="COLOR: #000000">((</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</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">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);</span></p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">前几项为 （<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="整数数列线上大全" href="http://www.cppblog.com/zh-cn/%E6%95%B4%E6%95%B8%E6%95%B8%E5%88%97%E7%B7%9A%E4%B8%8A%E5%A4%A7%E5%85%A8">OEIS</a>中的数列<a style="BACKGROUND-IMAGE: none; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; COLOR: rgb(51,102,187); TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" class="extiw" title="oeis:A000108" href="http://oeis.org/A000108">A000108</a>）: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...</p>
<h2 style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: rgb(170,170,170) 1px solid; PADDING-BOTTOM: 0.17em; MARGIN: 0px 0px 0.6em; WIDTH: auto; COLOR: black; FONT-SIZE: 22px; FONT-WEIGHT: normal; PADDING-TOP: 0.5em; background-origin: initial; background-clip: initial"><span style="FLOAT: right; MARGIN-LEFT: 1em; FONT-SIZE: 15px; FONT-WEIGHT: normal !important" class="editsection">[<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="编辑段落：性质" href="http://www.cppblog.com/w/index.php?title=%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0&amp;action=edit&amp;section=1">编辑</a>]</span><span id=".E6.80.A7.E8.B4.A8" class="mw-headline">性质</span></h2>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em"><em>C</em><sub><em>n</em></sub>的另一个表达形式为<img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; MARGIN: 0px; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_n = {2n\choose n} - {2n\choose n-1} \quad\mbox{ for }n\ge 1" src="http://upload.wikimedia.org/math/b/d/6/bd669af776b1293f2e8848dbcfa5a6f3.png"><span class="Apple-converted-space">&nbsp;</span>所以，<em>C</em><sub><em>n</em></sub>是一个<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="自然数" href="http://www.cppblog.com/zh-cn/%E8%87%AA%E7%84%B6%E6%95%B0">自然数</a>；这一点在先前的通项公式中并不显而易见。这个表达形式也是Andr&#233;对前一公式证明的基础。(见下文的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="第二个证明（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E7%AC%AC%E4%BA%8C%E4%B8%AA%E8%AF%81%E6%98%8E&amp;action=edit&amp;redlink=1">第二个证明</a>。)</p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">卡塔兰数满足以下<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="mw-redirect" title="递推关系" href="http://www.cppblog.com/zh-cn/%E9%80%92%E6%8E%A8%E5%85%B3%E7%B3%BB">递推关系</a></p>
<dl style="MARGIN-TOP: 0.2em; MARGIN-BOTTOM: 0.5em">
<dd style="LINE-HEIGHT: 1.5em; MARGIN-BOTTOM: 0.1em; MARGIN-LEFT: 2em"><img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\sum_{i=0}^{n}C_i\,C_{n-i}\quad\mbox{for }n\ge 0." src="http://upload.wikimedia.org/math/6/2/1/6217b3c99a3243afcd5d8dbd58186822.png"></dd></dl>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">它也满足</p>
<dl style="MARGIN-TOP: 0.2em; MARGIN-BOTTOM: 0.5em">
<dd style="LINE-HEIGHT: 1.5em; MARGIN-BOTTOM: 0.1em; MARGIN-LEFT: 2em"><img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\frac{2(2n+1)}{n+2}C_n," src="http://upload.wikimedia.org/math/8/a/4/8a49332e4a46b3a2c7accec81160f5e3.png"></dd></dl>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">这提供了一个更快速的方法来计算卡塔兰数。</p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">卡塔兰数的渐近增长为</p>
<dl style="MARGIN-TOP: 0.2em; MARGIN-BOTTOM: 0.5em">
<dd style="LINE-HEIGHT: 1.5em; MARGIN-BOTTOM: 0.1em; MARGIN-LEFT: 2em"><img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_n \sim \frac{4^n}{n^{3/2}\sqrt{\pi}}" src="http://upload.wikimedia.org/math/3/f/8/3f838aaa56c7ec71f80454fc181fea99.png"></dd></dl>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">它的含义是左式除以右式的商<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="极限" href="http://www.cppblog.com/zh-cn/%E6%9E%81%E9%99%90">趋向于</a>1当<em>n</em>&nbsp;&#8594;&nbsp;&#8734;。（这可以用<em>n</em>!的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="斯特灵公式" href="http://www.cppblog.com/zh-cn/%E6%96%AF%E7%89%B9%E9%9D%88%E5%85%AC%E5%BC%8F">斯特灵公式</a>来证明。）</p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">所有的奇卡塔兰数<em>C</em><sub><em>n</em></sub>都满足<span style="FONT-FAMILY: serif" class="texhtml"><em>n</em><span class="Apple-converted-space">&nbsp;</span>= 2<sup><em>k</em></sup><span class="Apple-converted-space">&nbsp;</span>&#8722; 1</span>。所有其他的卡塔兰数都是偶数。</p>
<h2 style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: rgb(170,170,170) 1px solid; PADDING-BOTTOM: 0.17em; MARGIN: 0px 0px 0.6em; WIDTH: auto; COLOR: black; FONT-SIZE: 22px; FONT-WEIGHT: normal; PADDING-TOP: 0.5em; background-origin: initial; background-clip: initial"><span style="FLOAT: right; MARGIN-LEFT: 1em; FONT-SIZE: 15px; FONT-WEIGHT: normal !important" class="editsection">[<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="编辑段落：应用" href="http://www.cppblog.com/w/index.php?title=%E5%8D%A1%E5%A1%94%E5%85%B0%E6%95%B0&amp;action=edit&amp;section=2">编辑</a>]</span><span id=".E5.BA.94.E7.94.A8" class="mw-headline">应用</span></h2>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em"><a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="组合数学" href="http://www.cppblog.com/zh-cn/%E7%BB%84%E5%90%88%E6%95%B0%E5%AD%A6">组合数学</a>中有非常多.的组合结构可以用卡塔兰数来计数。在Richard P. Stanley的Enumerative Combinatorics: Volume 2一书的习题中包括了66个相异的可由卡塔兰数表达的组合结构。以下用<em>C</em><sub><em>n</em></sub>=3和<em>C</em><sub><em>n</em></sub>=4举若干例：</p>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示长度<em>2n</em>的dyck word的个数。Dyck word是一个有<em>n</em>个X和<em>n</em>个Y组成的字串，且所有的部分字串皆满足X的个数大于等于Y的个数。以下为长度为6的dyck words: </li>
</ul>
<center>XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY</center>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em">将上例的X换成左括号，Y换成右括号，<em>C</em><sub><em>n</em></sub>表示所有包含<em>n</em>组括号的合法运算式的个数: </li>
</ul>
<center>((())) ()(()) ()()() (())() (()())</center>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示有<em>n+1</em>个叶子的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="二叉树" href="http://www.cppblog.com/zh-cn/%E4%BA%8C%E5%8F%89%E6%A0%91">二叉树</a>的个数。 </li>
</ul>
<p style="MARGIN-BOTTOM: 0.1em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/miyu/Catalan_number_binary_tree_example.png" width="496" height="92"></p>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示所有不同构的含<em>n</em>个分枝结点的满<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="二叉树" href="http://www.cppblog.com/zh-cn/%E4%BA%8C%E5%8F%89%E6%A0%91">二叉树</a>的个数。（一个有根二叉树是满的当且仅当每个结点都有两个子树或没有子树。） </li>
</ul>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em"><em>证明：</em></p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">令1表示进栈，0表示出栈，则可转化为求一个<em>2n</em>位、含<em>n</em>个1、<em>n</em>个0的二进制数，满足从左往右扫描到任意一位时，经过的0数不多于1数。显然含<em>n</em>个1、<em>n</em>个0的<em>2n</em>位二进制数共有<img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; MARGIN: 0px; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="{2n \choose n}" src="http://upload.wikimedia.org/math/c/9/2/c92da943df73dc077dbee5514376346a.png">个，下面考虑不满足要求的数目.<br></p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">考虑一个含<em>n</em>个1、<em>n</em>个0的2n位二进制数，扫描到第<em>2m+1</em>位上时有<em>m+1</em>个0和<em>m</em>个1（容易证明一定存在这样的情况），则后面的0-1排列中必有<em>n-m</em>个1和<em>n-m-1</em>个0。将<em>2m+2</em>及其以后的部分0变成1、1变成0，则对应一个<em>n+1</em>个0和<em>n-1</em>个1的二进制数。反之亦然（相似的思路证明两者一一对应）。</p>
<p style="LINE-HEIGHT: 1.5em; MARGIN: 0.4em 0px 0.5em">从而<img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; MARGIN: 0px; BORDER-TOP-STYLE: none; VERTICAL-ALIGN: middle; BORDER-LEFT-STYLE: none" class="tex" alt="C_n = {2n \choose n} - {2n \choose n + 1} = \frac{1}{n+1}{2n \choose n}" src="http://upload.wikimedia.org/math/4/8/2/4828faf1c29e4b699529f2275cc63453.png">。证毕。</p>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示所有在<em>n</em><span class="Apple-converted-space">&nbsp;</span>&#215;<span class="Apple-converted-space">&nbsp;</span><em>n</em>格点中不越过对角线的<strong>单调路径</strong>的个数。一个单调路径从格点左下角出发，在格点右上角结束，每一步均为向上或向右。计算这种路径的个数等价于计算Dyck word的个数： X代表&#8220;向右&#8221;，Y代表&#8220;向上&#8221;。下图为<em>n</em><span class="Apple-converted-space">&nbsp;</span>= 4的情况：
    </li><li style="MARGIN-BOTTOM: 0.1em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img border="0" src="http://www.cppblog.com/images/cppblog_com/miyu/450px-Catalan_number_4x4_grid_example.svg.png"> </li>
</ul>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示通过连结顶点而将<em>n</em>&nbsp;+&nbsp;2边的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="凸多边形（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E5%87%B8%E5%A4%9A%E8%BE%B9%E5%BD%A2&amp;action=edit&amp;redlink=1">凸多边形</a>分成<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="三角形（几何）（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E4%B8%89%E8%A7%92%E5%BD%A2%EF%BC%88%E5%87%A0%E4%BD%95%EF%BC%89&amp;action=edit&amp;redlink=1">三角形</a>的方法个数。下图中为<em>n</em><span class="Apple-converted-space">&nbsp;</span>= 4的情况： </li>
</ul>
<p style="MARGIN-BOTTOM: 0.1em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <img border="0" src="http://www.cppblog.com/images/cppblog_com/miyu/400px-Catalan-Hexagons-example.svg.png"></p>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示对{1, ...,<span class="Apple-converted-space">&nbsp;</span><em>n</em>}依序进出<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="栈（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E6%A0%88&amp;action=edit&amp;redlink=1">栈</a>的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="mw-redirect" title="置换" href="http://www.cppblog.com/zh-cn/%E7%BD%AE%E6%8D%A2">置换</a>个数。一个置换<em>w</em>是依序进出栈的当<em>S</em>(<em>w</em>) = (1, ...,<span class="Apple-converted-space">&nbsp;</span><em>n</em>), 其中<em>S</em>(<em>w</em>)递归定义如下：令<em>w</em><span class="Apple-converted-space">&nbsp;</span>=<span class="Apple-converted-space">&nbsp;</span><em>unv</em>，其中<em>n</em>为<em>w</em>的最大元素，<em>u</em>和<em>v</em>为更短的数列；再令<em>S</em>(<em>w</em>) =<em>S</em>(<em>u</em>)<em>S</em>(<em>v</em>)<em>n</em>，其中<em>S</em>为所有含一个元素的数列的单位元。 </li>
</ul>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示集合{1, ...,<span class="Apple-converted-space">&nbsp;</span><em>n</em>}的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="不交叉划分（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E4%B8%8D%E4%BA%A4%E5%8F%89%E5%88%92%E5%88%86&amp;action=edit&amp;redlink=1">不交叉划分</a>的个数. 那么,<span class="Apple-converted-space">&nbsp;</span><em>C</em><sub><em>n</em></sub><span class="Apple-converted-space">&nbsp;</span>永远不大于第<em>n</em>项<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="贝尔数" href="http://www.cppblog.com/zh-cn/%E8%B4%9D%E5%B0%94%E6%95%B0">贝尔数</a>.<span class="Apple-converted-space">&nbsp;</span><em>C</em><sub><em>n</em></sub>也表示集合{1, ..., 2<em>n</em>}的<a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="不交叉划分（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=%E4%B8%8D%E4%BA%A4%E5%8F%89%E5%88%92%E5%88%86&amp;action=edit&amp;redlink=1">不交叉划分</a>的个数，其中每个段落的长度为2。综合这两个结论，可以用<a style="BACKGROUND-IMAGE: none; COLOR: rgb(6,69,173); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" title="数学归纳法" href="http://www.cppblog.com/zh-cn/%E6%95%B0%E5%AD%A6%E5%BD%92%E7%BA%B3%E6%B3%95">数学归纳法</a>证明 that all of the<span class="Apple-converted-space">&nbsp;</span><em>free</em><span class="Apple-converted-space">&nbsp;</span><a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="Cumulant（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=Cumulant&amp;action=edit&amp;redlink=1">cumulant</a>s of degree more than 2 of the<span class="Apple-converted-space">&nbsp;</span><a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="Wigner semicircle law（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=Wigner_semicircle_law&amp;action=edit&amp;redlink=1">Wigner semicircle law</a><span class="Apple-converted-space">&nbsp;</span>are zero. This law is important in<span class="Apple-converted-space">&nbsp;</span><a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="Free probability（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=Free_probability&amp;action=edit&amp;redlink=1">free probability</a><span class="Apple-converted-space">&nbsp;</span>theory and the theory of<span class="Apple-converted-space">&nbsp;</span><a style="BACKGROUND-IMAGE: none; COLOR: rgb(204,34,0); TEXT-DECORATION: none; background-origin: initial; background-clip: initial" class="new" title="Random matrices（尚未撰写）" href="http://www.cppblog.com/w/index.php?title=Random_matrices&amp;action=edit&amp;redlink=1">random matrices</a>. </li>
</ul>
<ul style="PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.5em; LIST-STYLE-TYPE: square; MARGIN: 0.3em 0px 0px 1.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; LIST-STYLE-IMAGE: url(http://bits.wikimedia.org/skins-1.5/vector/images/bullet-icon.png?1); PADDING-TOP: 0px">
    <li style="MARGIN-BOTTOM: 0.1em"><em>C</em><sub><em>n</em></sub>表示用<em>n</em>个长方形填充一个高度为<em>n</em>的阶梯状图形的方法个数。下图为<span class="Apple-converted-space">&nbsp;</span><em>n</em>&nbsp;=&nbsp;4的情况: </li>
</ul>
<p style="MARGIN-BOTTOM: 0.1em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img border="0" src="http://www.cppblog.com/images/cppblog_com/miyu/400px-Catalan_stairsteps_4.svg.png"></p>
</div>
</span></span><br><br><span style="COLOR: red; FONT-SIZE: 24pt">百度百科资料</span>:<br>简介<br><br>　　中文:卡特兰数<br>　　Catalan数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁&#183;查理&#183;卡塔兰&nbsp;(</span><span style="COLOR: #000000">1814</span><span style="COLOR: #000000">&#8211;</span><span style="COLOR: #000000">1894</span><span style="COLOR: #000000">)命名。<br>　　原理：<br>　　令h(</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">,h(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)＝</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,catalan数满足递归式：<br>　　h(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;h(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;(其中n</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br>　　该递推关系的解为：<br>　　h(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">C(2n,n)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;(n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,<img src="http://www.cppblog.com/Images/dot.gif">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="Arial">另类递归式：&nbsp; h(n)<span style="COLOR: #000000">=</span><span style="COLOR: #000000">((</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</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">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);</span></font><br>　　<br>　　前几项为&nbsp;（OEIS中的数列A000108）:&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">42</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">132</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">429</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1430</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">4862</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">16796</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">58786</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">208012</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">742900</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2674440</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">9694845</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">35357670</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">129644790</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">477638700</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1767263190</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">6564120420</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">24466267020</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">91482563640</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">343059613650</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1289904147324</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">4861946401452</span><span style="COLOR: #000000">,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif"><br>应用<br><br>　　我总结了一下，最典型的四类应用：（实质上却都一样，无非是递归等式的应用，就看你能不能分解问题写出递归式了）<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.括号化问题。<br><br>　　矩阵链乘：&nbsp;P</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a1&#215;a2&#215;a3&#215;&#8230;&#8230;&#215;an，依据乘法结合律，不改变其顺序，只用括号表示成对的乘积，试问有几种括号化的方案？(h(n)种)<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">.出栈次序问题。<br><br>　　一个栈(无穷大)的进栈序列为1,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,..n,有多少个不同的出栈序列</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>　　类似：<br>　　(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)有2n个人排成一行进入剧场。入场费5元。其中只有n个人有一张5元钞票，另外n人只有10元钞票，剧院无其它钞票，问有多少中方法使得只要有10元的人买票，售票处就有5元的钞票找零？(将持5元者到达视作将5元入栈，持10元者到达视作使栈中某5元出栈)<br>　　(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)在圆上选择2n个点,将这些点成对连接起来，使得所得到的n条线段不相交的方法数。<br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">.将多边行划分为三角形问题。<br><br>　　将一个凸多边形区域分成三角形区域的方法数</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>　　类似：一位大城市的律师在她住所以北n个街区和以东n个街区处工作。每天她走2n个街区去上班。如果她<br>　　从不穿越（但可以碰到）从家到办公室的对角线，那么有多少条可能的道路？<br>　　类似：在圆上选择2n个点,将这些点成对连接起来使得所得到的n条线段不相交的方法数</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">.给顶节点组成二叉树的问题。<br><br>　　给定N个节点，能构成多少种形状不同的二叉树？<br>　　(一定是二叉树</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>　　先去一个点作为顶点,然后左边依次可以取0至N</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1个相对应的,右边是N</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1到0个,两两配对相乘,就是h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;h(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">h(n))<br>　　（能构成h（N）个）</span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/122573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 21:51 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2067 小兔的棋盘 ACM 2067 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122569.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 13:37:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122569.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122569.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122569.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122569.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122569.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2067">http://acm.hdu.edu.cn/showproblem.php?pid=2067</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>小兔的叔叔从外面旅游回来给她带来了一个礼物，小兔高兴地跑回自己的房间，拆开一看是一个棋盘，小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点)，这样的路径数有多少</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">小兔想了很长时间都没想出来，现在想请你帮助小兔解决这个问题，对于你来说应该不难吧</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Input<br>每次输入一个数n(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">35</span><span style="COLOR: #000000">)，当n等于－1时结束输入。<br>&nbsp;<br><br>Output<br>对于每个输入数据输出路径数，具体格式看Sample。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">12</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">416024</span></div>
</span><br>题目分析:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px">假设小兔的棋盘是 8 &#215; 8 的 ( 当然你也可以假设是其他 )。如下图:<br>箭头方向表示从该格子下一步能去的格子。因为不能穿越对角线，所有对角线上的格子只有进去的箭头，没有出来的箭头。<br><img border=0 alt="" src="http://www.cppblog.com/images/cppblog_com/miyu/2067.jpg" width=241 height=241><br><br>观察上图你就可以发现，其实这是一张关于对角线对称的图。所有我们只要求一个方向的值，然后乘以2即可。<br>我们就拿下三角来考虑。不难发现，所有在0列上的格子，路径数都是 <span style="COLOR: red; FONT-SIZE: 12pt">1 </span>(只能从上面过来)。<br>而其他格子则都是由上、左两个方向过来，即:<span style="COLOR: red; FONT-SIZE: 14pt">f(i,&nbsp;j)&nbsp;=&nbsp;f(i&nbsp;-&nbsp;1,&nbsp;j)&nbsp;+&nbsp;f(i,&nbsp;j&nbsp;-&nbsp;1);<br></span>另外<span style="COLOR: red; FONT-SIZE: 14pt">f(i, i) = f(i, j - 1)&nbsp; 或者 <span style="COLOR: red; FONT-SIZE: 14pt">f(i, i) = f( i-1, j )&nbsp;</span>;<br></span></div>
<br>代码如下:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 14pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></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>typedef&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;int64;<br>int64&nbsp;f[</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ca</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">int</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;,&nbsp;N&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;ca;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;N;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;j&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;j&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i][j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;f[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f[i][j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;f[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;f[i][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;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d&nbsp;%I64d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;ca,&nbsp;N,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;f[N</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][N]&nbsp;);<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>另外看别人的解题报告说这个是卡特兰数 (&nbsp;详细请查看&nbsp;<a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html">&lt;&lt;卡特兰数&gt;&gt;</a>&nbsp;&nbsp;), 其实现在还不理解, 分析如下:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 14pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Catalan数。。<br>令h(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)＝</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,h(</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">，catalan数满足递归式：<br>　　h(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</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">h(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)h(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;(其中n</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)<br>　　另类递归式：<br>　　h(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">((</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</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">h(n</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>　　该递推关系的解为：<br>　　h(n)</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">C(2n,n)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;(n</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&#8230;)</span></div>
<br>附卡特兰代码:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 14pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><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></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;__int64&nbsp;a[</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">{</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">};<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j,n,t</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;a[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">37</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">i</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">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][j]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">a[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">a[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][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">a[i][i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">a[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i][i]</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">a[i][i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">a[i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">][i</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">];<br>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(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)</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">!=-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d&nbsp;%I64d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">t,n,a[n][n]);<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>}</span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/122569.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 21:37 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122569.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求质数 之 筛法 ( 数论 C语言描述 zz )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 09:03:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122538.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122538.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122538.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 【问题描述】：　　　试编写一个程序，找出2-&gt;N之间的所有质数。希望用尽可能快的方法实现。【问题分析】：　　　这个问题可以有两种解法：一种是用&#8220;筛子法&#8221;，另一种是&#8220;除余法&#8221;。　　　如果要了解&#8220;除余法&#8221;，请看另一篇文章《求质数&nbsp;之&nbsp;除余法(C语言描述)》。　　　这里我们来讨论一下用&#8220;筛法&#...&nbsp;&nbsp;<a href='http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html'>阅读全文</a><img src ="http://www.cppblog.com/MiYu/aggbug/122538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 17:03 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>求质数 之 除余法 ( 数论 C语言描述 zz )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122537.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 09:01:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122537.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122537.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122537.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122537.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122537.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="TEXT-ALIGN: left; LINE-HEIGHT: 21px; FONT-FAMILY: verdana, sans-serif; FONT-SIZE: 14px" class=Apple-style-span>
<h2 style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">问题描述</h2>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">试编写一个程序，找出 2&#8594;N 之间的所有质数（质数的概念请看<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" title=百度百科：质数/素数 href="http://baike.baidu.com/view/10626.htm" target=_blank>这里</a>），用尽可能快的方法实现。</p>
<h2 style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">问题分析</h2>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">这个问题可以有两种解法：一种是用&#8220;筛子法&#8221;，另一种是从 2&#8594;N 逐一检测出质数。如果要了解&#8220;筛法&#8221;，请看另一篇文章《<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" title="求质数 之 筛法" href="http://www.cppblog.com/MiYu/archive/2010/08/07/122538.html">求质数 之 筛法</a>》。</p>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">现在来介绍第二种方法。用这种方法，最先想到的就是让从2&#8594;N逐一检查。如果是就显示出来，如果不是，就继续检查下一个直到超出范围 N。这是正确的做法，但效率却不高。当然，2 是质数，那么 2 的倍数就不是质数，如果令 i 从 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>N，就很冤枉地测试了 4、6、8&#8230;&#8230;这些数？所以第一点改建就是只测试 2 与所有的奇数就足够了。同理，3 是质数，但6、9、12&#8230;&#8230;这些 3 的倍数却不是，因此，如果能够把 2 与 3 的倍数跳过去而不测试，任意连续的 6 个数中，就只会测试 2 个而已。以6n, 6n+1, 6n+2, 6n+3, 6n+4, 6n+5 为例，6n, 6n+2, 6n+4 是偶数，又 6n+3 是 3 的倍数，所以如果 2 与 3 的倍数都不理会，只要测试的数就只留下6n+1和6n+5而已了，因而工作量只是前面想法的 2/6 = 1/3，应该用这个方法编程。</p>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">还有个问题，就是如果判断一个数 i 是否为素数。按素数的定义，也就是只有 1 与本身可以整除，所以可以用 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>i-1 去除 i，如果都除不尽，i 就是素数。观点对，但却与上一点一样的笨拙。当 i&gt;2 时，有哪一个数可以被 i-1 除尽的？没有！为什么？如果 i 不是质数，那么 i=a&#215;b，此地 a 与 b 既不是 i 又不是 1；正因为 a&gt;1，a 至少为 2，因此 b 最多也是 i/2 而已，去除 i 的数用不着是 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>i-1，而用 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>i/2 就可以了。不但如此，因为 i=a&#215;b，a 与 b 不能大于 sqrt(i)，为什么呢？如果 a&gt;sqrt(i)，b&gt;sqrt(i)，于是 a&#215;b &gt; sqrt(i)*sqrt(i) = i，因此就都不能整除i了。如果i不是质数，它的因子最大就是 sqrt(i)；换言之，用 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>sqrt(i)去检验就行了。</p>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">但是，用 2<span style="LINE-HEIGHT: 19px; FONT-SIZE: small">&#8594;</span>sqrt(i) 去检验也是浪费。就像前面一样，2 除不尽，2 的倍数也除不尽；同理，3 除不尽，3 的倍数也除不尽&#8230;&#8230;最理想的方法就是用质数去除i。</p>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">但问题是这些素数从何而来？这比较简单，可以准备一个数组 prime[]，用来存放找到的素数，一开始它里面有 2、3、5。检查的时候，就用 prime[] 中小于 sqrt(i)的数去除 i 即可，如果都除不尽，i 就是素数，把它放如 prime[] 中，因此 prime[] 中的素数会越来越多，直到满足个数为止！</p>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">不妨用这段说明来编写这个程序，但是程序设计的时候会有两个小问题：</p>
<ol style="PADDING-BOTTOM: 0px; LIST-STYLE-TYPE: none; MARGIN: 5px 0px 5px 35px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">
    <li style="PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: decimal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 2px">如果只检查 6n+1 和 6n+5 ？不难发现，它们的距离是4、2、4、2&#8230;&#8230;所以，可以先定义一个变量 gab=4，然后 gab=6-gab;
    <li style="PADDING-BOTTOM: 2px; LIST-STYLE-TYPE: decimal; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 2px">比较是不能用 sqrt(i)，因为它不精确。举个例子，i=121，在数学上，sqrt(i) 自然是 11，但计算机里的结果可能是 10.9999999，于是去除的数就是 2、3、5、7，而不含 11，因此 121 就变成质数了。解决这个问题的方法很简单，不要用开方，用平方即可。例如，如果 p*p&lt;=i，则就用 p 去除 i。而且它的效率比开方高。 </li>
</ol>
<h2 style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">程序清单</h2>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 36px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px"></p>
<div style="OVERFLOW-X: auto; OVERFLOW-Y: auto; BACKGROUND-COLOR: rgb(231,229,220); MARGIN: 18px 0px; WIDTH: 1043px; FONT-FAMILY: Consolas, 'Courier New', Courier, mono, serif; FONT-SIZE: 12px; PADDING-TOP: 1px" class=dp-highlighter>
<div style="PADDING-LEFT: 45px" class=bar>
<div style="BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: rgb(248,248,248); PADDING-LEFT: 10px; PADDING-RIGHT: 8px; FONT: 9px Verdana, Geneva, Arial, Helvetica, sans-serif; COLOR: silver; PADDING-TOP: 3px" class=tools><a style="BACKGROUND-IMAGE: none; BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; MARGIN: 0px 10px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(160,160,160); FONT-SIZE: 9px; BORDER-LEFT-STYLE: none; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;" href="#" initial? background-clip: initial; background-origin: 0px; PADDING-TOP: none; TEXT-DECORATION: BORDER-LEFT-STYLE: 9px; FONT-SIZE: rgb(160,160,160); COLOR: BORDER-TOP-STYLE: PADDING-RIGHT: PADDING-LEFT: 0px 10px MARGIN: BORDER-RIGHT-STYLE: PADDING-BOTTOM: BORDER-BOTTOM-STYLE: BACKGROUND-IMAGE:>copy to clipboard</a><a style="BACKGROUND-IMAGE: none; BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; MARGIN: 0px 10px 0px 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(160,160,160); FONT-SIZE: 9px; BORDER-LEFT-STYLE: none; TEXT-DECORATION: none; PADDING-TOP: 0px; background-origin: initial; background-clip: initial" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;" href="http://www.cppblog.com/MiYu/admin/EditPosts.aspx#" initial? background-clip: initial; background-origin: 0px; PADDING-TOP: none; TEXT-DECORATION: BORDER-LEFT-STYLE: 9px; FONT-SIZE: rgb(160,160,160); COLOR: BORDER-TOP-STYLE: PADDING-RIGHT: PADDING-LEFT: 0px 10px MARGIN: BORDER-RIGHT-STYLE: PADDING-BOTTOM: BORDER-BOTTOM-STYLE: BACKGROUND-IMAGE:>?</a></div>
</div>
<ol style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal; MARGIN: 0px 0px 1px 45px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=dp-cpp>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: gray; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=preprocessor>#include&nbsp;&lt;stdlib.h&gt;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: gray; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=preprocessor>#include&nbsp;&lt;stdio.h&gt;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;creat_prime&nbsp;(&nbsp;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;prime[],&nbsp;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;n,&nbsp;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;total&nbsp;)&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">{&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;i,&nbsp;*p,&nbsp;g&nbsp;=&nbsp;2;&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>for</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;(&nbsp;i&nbsp;=&nbsp;7;&nbsp;i&nbsp;&lt;=&nbsp;n;&nbsp;i&nbsp;+=&nbsp;g&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g&nbsp;=&nbsp;6&nbsp;-&nbsp;g;&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;prime;&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>while</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;(&nbsp;(*p)&nbsp;*&nbsp;(*p)&nbsp;&lt;=&nbsp;i&nbsp;&amp;&amp;&nbsp;i&nbsp;%&nbsp;(*p)&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p++;&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>if</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;(&nbsp;i&nbsp;%&nbsp;(*p)&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prime[total++]&nbsp;=&nbsp;i;&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>return</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;total;&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">}&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;main(</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>void</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">)&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">{&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;prime[30000]&nbsp;=&nbsp;{&nbsp;2,&nbsp;3,&nbsp;5&nbsp;};&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;total&nbsp;=&nbsp;3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,130,0); BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=comment>/*&nbsp;找到素数的个数&nbsp;*/</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;n&nbsp;=&nbsp;200000;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,130,0); BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=comment>/*&nbsp;要查找的范围(&gt;=6)&nbsp;*/</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(46,139,87); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=datatypes>int</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;i;&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;total&nbsp;=&nbsp;creat_prime&nbsp;(&nbsp;prime,&nbsp;n,&nbsp;total&nbsp;);&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>for</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;total;&nbsp;i++)&nbsp;{&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: blue; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=string>"%d&nbsp;"</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">,&nbsp;prime[i]&nbsp;);&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>if</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;(&nbsp;i&nbsp;&amp;&amp;&nbsp;!(i&nbsp;%&nbsp;10)&nbsp;)&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar&nbsp;(&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: blue; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=string>'\n'</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;);&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;putchar&nbsp;(&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: blue; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px" class=string>'\n'</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;);&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(255,255,255); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; PADDING-TOP: 0px !important" class=alt><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;&nbsp;&nbsp;&nbsp;<span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: rgb(0,102,153); BORDER-LEFT-STYLE: none; FONT-WEIGHT: bold; PADDING-TOP: 0px" class=keyword>return</span><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">&nbsp;EXIT_SUCCESS;&nbsp;&nbsp;</span></span>
    <li style="LIST-STYLE-POSITION: outside !important; BORDER-BOTTOM-STYLE: none; BORDER-LEFT: rgb(108,226,108) 3px solid; PADDING-BOTTOM: 0px !important; LINE-HEIGHT: 14px; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: rgb(248,248,248); LIST-STYLE-TYPE: decimal-leading-zero; MARGIN: 0px; PADDING-LEFT: 10px !important; PADDING-RIGHT: 3px !important; BORDER-TOP-STYLE: none; COLOR: rgb(92,92,92); PADDING-TOP: 0px !important"><span style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 18px; BORDER-RIGHT-STYLE: none; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; BORDER-TOP-STYLE: none; COLOR: black; BORDER-LEFT-STYLE: none; PADDING-TOP: 0px">}&nbsp;&nbsp;</span> </li>
</ol>
</div>
<p><span style="COLOR: red; FONT-SIZE: 18pt">本文转载自 :</span></p>
<hr SIZE=1>
<h2 style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">版权声明</h2>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">本人的所有原创文章皆保留版权，请尊重原创作品。<br>转载必须包含本声明，保持本文完整，并以超链接形式注明原始作者&#8220;<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#101;&#100;&#114;&#97;&#105;&#109;&#101;&#110;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">redraiment</a>&#8221;和<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="http://blog.csdn.net/">主站点</a>上的本文原始地址。</p>
<h2 style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px">联系方式</h2>
<p style="PADDING-BOTTOM: 0px; TEXT-INDENT: 0px; MARGIN: 1em 0px 0.5em; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: 'Courier New'; FONT-SIZE: medium; PADDING-TOP: 0px">我的邮箱，欢迎来信（<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#101;&#100;&#114;&#97;&#105;&#109;&#101;&#110;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;">redraiment@gmail.com</a>）<br>我的Blogger（<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="http://redraiment.blogspot.com/">子清行</a>）<br>我的Google Sites（<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="https://sites.google.com/site/redraiment">子清行</a>）<br>我的CSDN博客（<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="http://blog.csdn.net/redraiment">梦婷轩</a>）<br>我的百度空间（<a style="COLOR: rgb(52,87,156); TEXT-DECORATION: none" href="http://hi.baidu.com/redraiment">梦婷轩</a>）</p>
</span></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122537.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 17:01 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122537.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>&lt;ZZ&gt;The Sieve of Eratosthees ( 爱拉托逊斯筛选法 数论 筛法 )</title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122533.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 08:37:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122533.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122533.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122533.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122533.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122533.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="TEXT-ALIGN: left; BORDER-COLLAPSE: collapse; FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif; COLOR: rgb(68,68,68); FONT-SIZE: 12px" class=Apple-style-span>
<table style="LINE-HEIGHT: normal; WIDTH: 1152px; BORDER-COLLAPSE: collapse; WORD-WRAP: break-word; EMPTY-CELLS: show; TABLE-LAYOUT: fixed; MARGIN-LEFT: 1px" cellSpacing=0 cellPadding=0>
    <tbody style="LINE-HEIGHT: normal; WORD-WRAP: break-word">
        <tr style="LINE-HEIGHT: normal; WORD-WRAP: break-word">
            <td style="FONT: 14px/1.6em Verdana, Helvetica, Arial, sans-serif; WORD-WRAP: break-word; COLOR: rgb(68,68,68)" id=postmessage_4395 class=t_msgfont>
            <p>转载文章 ： 转载自<a href="http://www.wutianqi.com/" target=_blank>Tanky Woo 的程序人生</a>&nbsp;, &lt;-------&nbsp;请大家多多支持奋斗哥哈</p>
            <p><br>The Sieve of Eratosthees<br>爱拉托逊斯筛选法思想：对于不超过n的每个非负整数P，删除2*P, 3*P&#8230;，当处理<br><br>完所有数之后，还没有被删除的就是素数。<br><br>若用vis==1表示已被删除，则代码如下：<br>—————————————————&#8211;<br>代码一：</p>
            <div>
            <div id=code0>
            <ol>
                <li>memset(vis, 0, sizeof(vis));<br>
                <li>for(int i = 2; i &lt;= 100; i++)<br>
                <li>for(int j = i*2; j &lt;= 100; j += i)<br>
                <li>&nbsp;&nbsp;vis[j] = 1; </li>
            </ol>
            </div>
            复制代码</div>
            上面的代码效率已经很高了。<br>但还可以继续优化。<br>看一个改进的代码：<br>——————————————————<br>代码二：
            <div>
            <div id=code1>
            <ol>
                <li>int m = sqrt(double(n+0.5));<br>
                <li><br>
                <li>for(int i = 2; i &lt;= m; i++)<br>
                <li>if(!vis[i])<br>
                <li>{<br>
                <li>&nbsp;&nbsp;prime[c++] = i;<br>
                <li>&nbsp;&nbsp;for(int j = i*i; j &lt;= n; j += i)<br>
                <li>&nbsp;&nbsp;{<br>
                <li>&nbsp; &nbsp;vis[j] = 1;<br>
                <li>&nbsp;&nbsp;}<br>
                <li>} </li>
            </ol>
            </div>
            复制代码</div>
            ——————————————————<br><span style="FONT-FAMILY: 宋体">先分析代码一：<br>这个代码就是简单的将Eratosthenes筛选法描述出来。不用多说。<br>分析代码二：<br>考虑几点：<br>1.为何从i=2~m?<br>因为下面的j是从i*i开始的。<br>2.为何j从i*i开始？<br>因为首先在i=2时，偶数都已经被删除了。<br>其次，&#8220;对于不超过n的每个非负整数P&#8221;， P可以限定为素数，<br>为什么？<br>因为，在 i 执行到P时，P之前所有的数的倍数都已经被删除，若P<br><br>没有被删除，则P一定是素数。<br>而P的倍数中，只需看：<br>(p-4)*p, (p-2)*p, p*p, p*(p+2), p*(p+4)<br>（因为P为素数，所以为奇数，而偶数已被删除，不需要考虑p*(p<br><br>-1)等）<br>又因为(p-4)*p 已在 (p-4)的p倍中被删去，故只考虑：<br>p*p, p*(p+2)&#8230;.即可<br>这也是i只需要从2到m的原因。<br>当然，上面 p*p, p*(p+2)&#8230;的前提是偶数都已经被删去，而代码<br><br>二若改成 j += 2*i ,则没有除去所有偶数，所以要想直接 加2*i<br><br>。只需在代码二中memset()后面加：<br>for(int i = 4; i &lt;= n; i++)<br>&nbsp; &nbsp;&nbsp;&nbsp;if(i % 2 == 0)<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; vis&nbsp;= 1;<br>这样，i只需从3开始，而j每次可以直接加 2*i.<br>——————————————————<br>这里用代码二给大家一个完整的代码：</span>
            <div>
            <div id=code2>
            <ol>
                <li>//版本二<br>
                <li>//Author: Tanky Woo<br>
                <li>//BBS:www.cppleyuan.com<br>
                <li>#include &lt;stdio.h&gt;<br>
                <li>#include &lt;string.h&gt;<br>
                <li>#include &lt;math.h&gt;<br>
                <li>int vis[100];<br>
                <li>int prime[100];<br>
                <li>int c = 0;<br>
                <li>int n;<br>
                <li>int main()<br>
                <li>{<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; scanf("%d", &amp;amp;n);<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; int cnt = 1;<br>
                <li><br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; memset(vis, 0, sizeof(vis));<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; int m = sqrt(double(n+0.5));<br>
                <li><br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 2; i &lt;= m; i++)<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!vis[i])<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prime[c++] = i;<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int j = i*i; j &lt;= n; j += i)<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; vis[j] = 1;<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //printf("%d\n", j);<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
                <li><br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 2; i&nbsp;&lt; n; i++)<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; {<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(vis[i] == 0)<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("%d ", i);<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cnt++;<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(cnt % 10 == 0)<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("\n");<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; }<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; printf("\ncnt = %d\n", cnt);<br>
                <li>&nbsp; &nbsp; &nbsp; &nbsp; return 0;<br>
                <li>} </li>
            </ol>
            </div>
            复制代码</div>
            完毕。<br><br>欢迎大家和我交流。&nbsp;<br><br>转载文章 ： 转载自<a href="http://www.wutianqi.com/" target=_blank>Tanky Woo 的程序人生</a></td>
        </tr>
    </tbody>
</table>
</span></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 16:37 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2080 夹角有多大II ACM 2080 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122527.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 07:11:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122527.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122527.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122527.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2080">http://acm.hdu.edu.cn/showproblem.php?pid=2080</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>这次xhd面临的问题是这样的：在一个平面内有两个点，求两个点分别和原点的连线的夹角的大小。<br><br>注：夹角的范围[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">，</span><span style="COLOR: #000000">180</span><span style="COLOR: #000000">]，两个点不会在圆心出现。<br>&nbsp;<br><br>Input<br>输入数据的第一行是一个数据T，表示有T组数据。<br>每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">10000</span><span style="COLOR: #000000">]。<br>&nbsp;<br><br>Output<br>对于每组输入数据，输出夹角的大小精确到小数点后两位。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">0.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">45.00</span></div>
</span><br>题目分析:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;纯数学题.&nbsp;&nbsp; 有多边型面积公式, 我们可以得到 三角型的面积 : <span style="COLOR: red">S = ( x0&nbsp;* y1 - x1 * y0 ) / 2.<br></span>而由三角型正弦定理我们知道 : <span style="COLOR: red">S = 1 / 2 * A * B * sinV</span>&nbsp;. 联立 2方程就可以得到 夹角V 的解<br>的方程 :&nbsp;&nbsp;<span style="COLOR: red">sinV = &nbsp;( x0&nbsp;* y1 - x1 * y0 ) / A / B</span> ;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后利用 c 数学库函数 asin就可以求出V的弧<br>度值, 把弧度转换成角度就可以了.&nbsp;&nbsp; (&nbsp;<span style="COLOR: red">注意平角和钝角的判断</span>&nbsp;)<br><br>代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iomanip</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;T;<br>&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;T;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;T&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;x0,x1,y0,y1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;x0&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;y0&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;x1&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;y1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;A&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sqrt&nbsp;(&nbsp;x0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;x0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;y0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;y0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;B&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;sqrt&nbsp;(&nbsp;x1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;x1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;y1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;y1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1.0</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;resin&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(&nbsp;fabs&nbsp;(&nbsp;x0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;y1&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;x1&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;y0&nbsp;)&nbsp;)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;A&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;B&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;res&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;asin&nbsp;(&nbsp;resin&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">180.0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;acos(&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;res&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;1e</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;(&nbsp;x0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;x1&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">180.0</span><span style="COLOR: #000000">&nbsp;:&nbsp;</span><span style="COLOR: #000000">0.0</span><span style="COLOR: #000000">&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">平角&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;(&nbsp;x0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;x1&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;y0&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;y1&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">180.0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;res&nbsp;:&nbsp;res&nbsp;);&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">是否钝角&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;setprecision&nbsp;(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;setiosflags&nbsp;(&nbsp;ios::</span><span style="COLOR: #0000ff">fixed</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;res&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<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">;&nbsp;<br>}<br></span></div>
<br>
<img src ="http://www.cppblog.com/MiYu/aggbug/122527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 15:11 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2078 复习时间 ACM 2078 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/07/122520.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 07 Aug 2010 05:41:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/07/122520.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122520.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/07/122520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122520.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122520.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2078">http://acm.hdu.edu.cn/showproblem.php?pid=2078</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>为了能过个好年，xhd开始复习了，于是每天晚上背着书往教室跑。xhd复习有个习惯，在复习完一门课后，他总是挑一门更简单的课进行复习，而他复习这门课的效率为两门课的难度差的平方,而复习第一门课的效率为100和这门课的难度差的平方。xhd这学期选了n门课，但是一晚上他最多只能复习m门课，请问他一晚上复习的最高效率值是多少？<br>&nbsp;<br><br>Input<br>输入数据的第一行是一个数据T，表示有T组数据。<br>每组数据的第一行是两个整数n(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">40</span><span style="COLOR: #000000">)，m(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;m&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n)。<br>接着有n行，每行有一个正整数a(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;a&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)，表示这门课的难度值。<br>&nbsp;<br><br>Output<br>对于每组输入数据，输出一个整数，表示最高效率值。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">52</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">25</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">89</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">64</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">6</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">43</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">56</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">72</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">92</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">23</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">20</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">22</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">37</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">31</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">5625</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">8836</span><span style="COLOR: #000000">&nbsp;</span></div>
<br>由题意我们很容易了解到 : 前一门课为 N, 后一门课为 M , 则学习&nbsp; M 课的效率为 (&nbsp;N - M&nbsp;)<sup>2&nbsp;&nbsp;,</sup> 那么学习第一节的效率为<br><br>&nbsp; (&nbsp;100 -&nbsp;N&nbsp;)<sup>2&nbsp;&nbsp;</sup> , 有题目我们知道: 下一门需要学习的课比上一次更 <span style="COLOR: red">简单</span>, &nbsp; 所以 N &gt; M, 那么此时学习的效率为 : <br><br><span style="COLOR: red">F1 = ( 100 - N&nbsp; )<sup>2</sup> + (&nbsp;N - M&nbsp;)<sup>2</sup> = 100<sup>2</sup>&nbsp;- 2*100*N + N<sup>2</sup> + N<sup>2</sup> - 2*N*M + M<sup>2</sup> =&nbsp; 100<sup>2</sup> + M<sup>2</sup>&nbsp;- 2*N*(&nbsp;100+M-N );</span> <br><br>而直接学习最简单的课程的效率为:<br><br><span style="COLOR: red">F2 = (&nbsp;100 - M&nbsp;)<sup>2</sup> = 100<sup>2</sup> +M<sup>2</sup> - 2*100*M</span>&nbsp; <br><br>因为&nbsp; <font color=#ff0000>2*N*(&nbsp;100+M-N ) - 2*100*M = (&nbsp;N - M ) * (&nbsp;200 - 2*N&nbsp;)&nbsp; ,</font><font color=#000000>有上面的分析我们知道 N &gt; M , N &lt; 100 , 于是就有 <br><br></font><font color=#ff0000>(&nbsp;N - M ) * (&nbsp;200 - 2*N&nbsp;)&nbsp; &gt; 0 ;</font><font color=#000000> 也就是说 <span style="COLOR: red">F2 &gt; F1</span> ;<br><br>有分析可以看出 , <span style="COLOR: red">要想效率最高, 只需要找出简单的课程直接学习就可以了</span>.<br><br>代码如下 :<br><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;T;<br>&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;T;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;T&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,m;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;m;<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;min&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;m;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;min&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;m&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;m;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;min&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;min&nbsp;)&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<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">;&nbsp;<br>}<br></span></div>
</font></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-07 13:41 <a href="http://www.cppblog.com/MiYu/archive/2010/08/07/122520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2086 A1 = ? ACM 2086 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/06/122461.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 06 Aug 2010 08:52:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/06/122461.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122461.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/06/122461.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122461.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122461.html</trackback:ping><description><![CDATA[MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2086">http://acm.hdu.edu.cn/showproblem.php?pid=2086<br></a>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>有如下方程：Ai&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Ai</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;Ai</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;Ci&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">.&nbsp;n).<br>若给出A0,&nbsp;An</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;和&nbsp;C1,&nbsp;C2,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">..Cn.<br>请编程计算A1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Input<br>输入包括多个测试实例。<br>对于每个实例，首先是一个正整数n,(n&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3000</span><span style="COLOR: #000000">);&nbsp;然后是2个数a0,&nbsp;an</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">.接下来的n行每行有一个数ci(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">.n);输入以文件结束符结束。<br>&nbsp;<br><br>Output<br>对于每个测试实例，用一行输出所求得的a1(保留2位小数).<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">50.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">25.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">10.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">50.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">25.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">10.00</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">20.00</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">27.50</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">15.00</span></div>
<br>这道题的关键在于公式的推导, 公式推出来问题就解决了:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Ai&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Ai</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;Ai</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;Ci&nbsp;(i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">.&nbsp;n).&nbsp;用A5做示范，就能猜测出公式来。证明方法可以采用数学归纳法。这里证明从略。<br>A5&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(A4&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5<br>A4&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(A3&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A5)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C4&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;A3&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A4&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C4<br></span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">A4&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;2A3</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;2C5</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;4C4</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br><br>A3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(A2&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A4)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;A2&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A3&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;2C4&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C3<br></span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">A3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;3A2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C4&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;3C3</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br><br>A2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(A1&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A3)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;A1&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;3A2&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C4&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;3C3&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C2<br></span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">A2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;4A1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;2C5</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;4C4</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;6C3</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;8C2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000"><br><br>A1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(A0&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A2)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;A0&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;2A1&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;2C4&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;3C3&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;4C2&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C1<br></span><span style="COLOR: #000000">=&gt;</span><span style="COLOR: #000000">A1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;5A0</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;A6</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C5</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;2C4</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;C3&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;4C2</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;5C1</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br><br>算到这里，我想你已经总结出公式了:<br>A1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(n&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;A0&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;An</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Cn&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Cn</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Cn</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;C1)&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(n&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)&nbsp;<br></span></div>
<br>代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>#include&nbsp;</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></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;a0,&nbsp;an1,&nbsp;a1;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;c[</span><span style="COLOR: #000000">3000</span><span style="COLOR: #000000">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;scanf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n)&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;EOF&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%lf%lf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">a0,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">an1&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i</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;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%lf</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;c&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;a0&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;an1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;i</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;&nbsp;&nbsp;a1&nbsp;</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;c[n&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%.2f\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;a1&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(&nbsp;n&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;);<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>
<img src ="http://www.cppblog.com/MiYu/aggbug/122461.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-06 16:52 <a href="http://www.cppblog.com/MiYu/archive/2010/08/06/122461.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2068 RPG的错排 ACM 2068 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/06/122456.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 06 Aug 2010 08:00:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/06/122456.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122456.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/06/122456.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122456.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122456.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2068">http://acm.hdu.edu.cn/showproblem.php?pid=2068</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁。RPG给他机会让他猜猜，第一次猜：R是公主，P是草儿，G是月野兔；第二次猜：R是草儿，P是月野兔，G是公主；第三次猜：R是草儿，P是公主，G是月野兔；<img src="http://www.cppblog.com/Images/dot.gif"><img src="http://www.cppblog.com/Images/dot.gif">可怜的野骆驼第六次终于把RPG分清楚了。由于RPG的带动，做ACM的女生越来越多，我们的野骆驼想都知道她们，可现在有N多人，他要猜的次数可就多了，为了不为难野骆驼，女生们只要求他答对一半或以上就算过关，请问有多少组答案能使他顺利过关。<br>&nbsp;<br><br>Input<br>输入的数据里有多个case,每个case包括一个n，代表有几个女生，（n</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">）,&nbsp;n&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;0输入结束。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">0</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">1</span></div>
</span><br><span style="COLOR: #ff6600">很明显的 错排 + 排列组合 的题目. 更多错排资料请点击 --&gt; &lt;&lt;&nbsp;<a href="http://www.cppblog.com/MiYu/archive/2010/08/08/122615.html">错排公式</a> &gt;&gt;<br><br>要猜对一半或一半以上, 那么就是从给出的 n 个人中 取出 小于或等于 n / 2 的人进行错排 , <br><br>因为题目问的是顺利通关的所有解, 所以最后需要累加 0 -&gt; n / 2 的错排方法.<br><br>错排公式</span> :&nbsp; <span style="COLOR: red">F (&nbsp;n ) = (&nbsp;n - 1&nbsp;) * (&nbsp;F(n-1) + F ( n - 2 )&nbsp;)</span> <br><br>代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 12pt; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br></span><br>#include&nbsp;</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>typedef&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;int64;<br>int64&nbsp;Com&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;m&nbsp;)&nbsp; //&nbsp;取 C<sub>n </sub><sup>m 的 组合数</sup><br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;m&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int64&nbsp;up&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,down&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;m;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;up&nbsp;</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;down&nbsp;</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;up&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;down;<br>}<br>int64&nbsp;F[</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;{&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;};<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setNum&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">14</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;F[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(&nbsp;F[&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;F[&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">&nbsp;]&nbsp;);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;int64&nbsp;sum;<br>&nbsp;&nbsp;&nbsp;&nbsp;setNum&nbsp;();<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">N),&nbsp;N&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;N&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&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;sum&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;Com&nbsp;(&nbsp;N&nbsp;,&nbsp;i&nbsp;)&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;F[i];&nbsp;&nbsp;&nbsp; // 从N中取i 个人&nbsp;的错排数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">,&nbsp;sum&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span></div>
<br><br>
<img src ="http://www.cppblog.com/MiYu/aggbug/122456.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-06 16:00 <a href="http://www.cppblog.com/MiYu/archive/2010/08/06/122456.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2077 汉诺塔IV ACM 2077 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/06/122447.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 06 Aug 2010 07:21:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/06/122447.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122447.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/06/122447.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122447.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122447.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2077">http://acm.hdu.edu.cn/showproblem.php?pid=2077</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>还记得汉诺塔III吗？他的规则是这样的：不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出)，也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢？（只允许最大的放在最上面）当然最后需要的结果是盘子从小到大排在最右边。<br>&nbsp;<br><br>Input<br>输入数据的第一行是一个数据T，表示有T组数据。<br>每组数据有一个正整数n(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">)，表示有n个盘子。<br>&nbsp;<br><br>Output<br>对于每组输入数据，最少需要的摆放次数。<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">1</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">10</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">19684</span><span style="COLOR: #000000"><br></span></div>
</span><br>因为最大的可以放在最上面, 所以就不能像 汉诺塔III那样把前n-1个盘全部从1-&gt;3了.<br>&nbsp; <br>只要把前n-1个盘从1-&gt;2,然后把第n个盘1-&gt;2-&gt;3,然后把前n-1个盘2-&gt;3, 这样就完成了.<br><br>所以,问题现在转换成 n 个盘<span style="COLOR: red">移动一步</span>需要多少次.&nbsp;&nbsp; 我们可以看到, 除了最后一个最<br><br>大的盘n以外, 前n-1个盘的移动方式是和 汉诺塔III的规则是一样的.所以我们先把前<br>&nbsp;<br>n-2 个盘 1-&gt;3, 然后把 第n-1个盘 1-&gt;2, 再把前n-2个盘 3-&gt;2, 这样就把前 n-1个盘<br>&nbsp;<br>1-&gt;2 移动了一步.<br>因为把 n 个盘 按找汉诺塔III的方法 1-&gt;3 需要 3<sup>n</sup> -1 推导见 :<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: red"> </span><a id=viewpost1_TitleUrl class=singleposttitle href="http://www.cppblog.com/MiYu/archive/2010/08/06/122396.html"><span style="COLOR: red">HDOJ HDU 2064 汉诺塔III ACM 2064 IN HDU <br></span></a><br>所以由上面描述的步骤知道把 n 个盘移动一步需要 : f(n) = f(n-1) + ( 3<sup>n-1&nbsp;</sup>- 1&nbsp;) + 1 = f (n-1) + 3<sup>n-1</sup> 而 f(1) = 1 <br>由递推式化简得: f(n) = 3<sup>n-1</sup> + 3<sup>n-2</sup> + ...+ 3 + 1 = (&nbsp;3<sup>n</sup> -1&nbsp;) / 2<br>所以按 汉诺塔IV的规则, 移动 n 个盘 需要 : m(n) = 2 * f (n-1) + 2 = 3<sup>n-1</sup> + 1<br><br>代码如下:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;myPow&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n&nbsp;,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;e&nbsp;)<br>{<br>&nbsp;&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;mlt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;e&nbsp;;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mlt&nbsp;</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">&nbsp;n;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;mlt;<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;myPow&nbsp;(&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,&nbsp;N&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<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">;&nbsp;<br>}<br></span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/122447.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-06 15:21 <a href="http://www.cppblog.com/MiYu/archive/2010/08/06/122447.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 1060 Leftmost Digit ACM 1060 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/06/122441.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 06 Aug 2010 06:51:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/06/122441.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122441.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/06/122441.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122441.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122441.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://acm.hdu.edu.cn/showproblem.php?pid=1060">http://acm.hdu.edu.cn/showproblem.php?pid=1060</a><br>题目描述:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">Problem&nbsp;Description<br>Given&nbsp;a&nbsp;positive&nbsp;integer&nbsp;N,&nbsp;you&nbsp;should&nbsp;output&nbsp;the&nbsp;leftmost&nbsp;digit&nbsp;of&nbsp;N</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">N.<br>&nbsp;<br><br>Input<br>The&nbsp;input&nbsp;contains&nbsp;several&nbsp;test&nbsp;cases.&nbsp;The&nbsp;first&nbsp;line&nbsp;of&nbsp;the&nbsp;input&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;a&nbsp;single&nbsp;integer&nbsp;T&nbsp;which&nbsp;</span><span style="COLOR: #0000ff">is</span><span style="COLOR: #000000">&nbsp;the&nbsp;number&nbsp;of&nbsp;test&nbsp;cases.&nbsp;T&nbsp;test&nbsp;cases&nbsp;follow.<br>Each&nbsp;test&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;contains&nbsp;a&nbsp;single&nbsp;positive&nbsp;integer&nbsp;N(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">N</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">000</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">000</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">000</span><span style="COLOR: #000000">).<br>&nbsp;<br><br>Output<br>For&nbsp;each&nbsp;test&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">,&nbsp;you&nbsp;should&nbsp;output&nbsp;the&nbsp;leftmost&nbsp;digit&nbsp;of&nbsp;N</span><span style="COLOR: #000000">^</span><span style="COLOR: #000000">N.<br>&nbsp;<br><br>Sample&nbsp;Input<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">4</span><span style="COLOR: #000000"><br>&nbsp;<br><br>Sample&nbsp;Output<br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2</span><span style="COLOR: #000000"><br></span></div>
<br>解题思路:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="TEXT-ALIGN: left; BORDER-COLLAPSE: collapse; FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif; COLOR: rgb(68,68,68); FONT-SIZE: 14px" class=Apple-style-span>m=n^n,两遍分别对10取对数得 log10(m)=n*log10(n),得m=10^(n*log10(n)),由于10的任何整数次幂首位一定为1,所以m的首位只和n*log10(n)的小数部分有关<br><font color=#000000 size=3>代码如下 :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">//<span style="COLOR: #000000">MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/"><font color=#1d58d1>______________白白の屋</font></a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br>typedef&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;int64;&nbsp;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;int64&nbsp;N,i,a,sum;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;s,num,x;<br>&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;N&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;num;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;num&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;log10&nbsp;(&nbsp;num&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(&nbsp;int64&nbsp;)&nbsp;s;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;s&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sum&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(&nbsp;int64&nbsp;)&nbsp;pow&nbsp;(&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;)&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">,&nbsp;(&nbsp;x&nbsp;)&nbsp;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;sum&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<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">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>}<br></span></div>
</font></span></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122441.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-06 14:51 <a href="http://www.cppblog.com/MiYu/archive/2010/08/06/122441.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 1164 Eddy's research I ACM 1164 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/06/122398.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Fri, 06 Aug 2010 01:18:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/06/122398.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122398.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/06/122398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122398.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122398.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br>题目地址:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1164">http://acm.hdu.edu.cn/showproblem.php?pid=1164</a><br>题目描述:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把一个数拆分成素数的乘积.<br><br>素数的水题 ,&nbsp; 只要把素数提取出来, 暴力就可以了.<br>代码如下 :<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num[</span><span style="COLOR: #000000">70001</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">70000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">num[i]&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">70000</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;j&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num[i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">j]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;N&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;N;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;f&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;n&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">65535</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">num[i]&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;n&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;f&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;i;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;i;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;i;<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;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;getchar();</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;<br>}<br></span></div>
<img src ="http://www.cppblog.com/MiYu/aggbug/122398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-06 09:18 <a href="http://www.cppblog.com/MiYu/archive/2010/08/06/122398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2058 The sum problem ACM 2058 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/04/122241.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Wed, 04 Aug 2010 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/04/122241.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122241.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/04/122241.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122241.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122241.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br>题目地址 :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2058">http://acm.hdu.edu.cn/showproblem.php?pid=2058</a><br><br>观察a+1,a+2&#8230;a+d<br>全部相加等于M<br>即(a+1+a+d)*d/2 = M, <br>这里d是平方，我们可以从长度d入手，这样就能把范围由M转换成M^1/2&nbsp;;<br>
<p>这里把代码中的①和②解释下：<br>①：当a+1,a+2&#8230;a+3相加等于M时，即<br>(a+1+a+d)*d/2 = M<br>而a最小是0，所以(d+1)*d/2=M时d去最大值，就是这步把时间复杂度减小的。<br>d就是sqrt(2*M)</p>
<p>②：(a+1+a+d)*d/2 = M<br>所以a*d + (d+1)/2 = M<br>所以要使等式成立，M-(d+1)/2必须是d的倍数。<br>此为奋斗哥的代码 :&nbsp;&nbsp;&nbsp; 0rz........下<br></p>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cmath</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br>#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;N,&nbsp;M;<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;flag&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">N,&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">M)&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;(M</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">N))<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;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">(sqrt(M</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">2.0</span><span style="COLOR: #000000">));&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;①</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">len;&nbsp;i</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">i)<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;temp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;M</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i)</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;②</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(temp</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">i&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</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;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">[%d,%d]\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;temp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;temp</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">i</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br>}<br></span></div>
</span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122241.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-04 22:18 <a href="http://www.cppblog.com/MiYu/archive/2010/08/04/122241.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HDOJ HDU 2672 god is a girl ACM 2672 IN HDU </title><link>http://www.cppblog.com/MiYu/archive/2010/08/04/122193.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Wed, 04 Aug 2010 04:47:00 GMT</pubDate><guid>http://www.cppblog.com/MiYu/archive/2010/08/04/122193.html</guid><wfw:comment>http://www.cppblog.com/MiYu/comments/122193.html</wfw:comment><comments>http://www.cppblog.com/MiYu/archive/2010/08/04/122193.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/MiYu/comments/commentRss/122193.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/MiYu/services/trackbacks/122193.html</trackback:ping><description><![CDATA[<span style="WIDOWS: 2; TEXT-TRANSFORM: none; TEXT-INDENT: 0px; BORDER-COLLAPSE: separate; FONT: medium 'Times New Roman'; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(0,0,0); WORD-SPACING: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class=Apple-style-span><span style="TEXT-ALIGN: left; LINE-HEIGHT: 22px; BORDER-COLLAPSE: collapse; FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif; COLOR: rgb(68,68,68); FONT-SIZE: 14px" class=Apple-style-span><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br>题目地址 :<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2672">http://acm.hdu.edu.cn/showproblem.php?pid=2672</a><br><br>好吧..............我承认, 当我看这题的解题报告时,&nbsp;&nbsp;我被征服了................<br>代码如下:<br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><span style="COLOR: #000000">//MiYu原创, 转帖请注明 : 转载自 <a href="http://www.cppblog.com/MiYu/">______________白白の屋</a></span><br><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cctype</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img id=Codehighlighter1_91_101_Open_Image onclick="this.style.display='none'; Codehighlighter1_91_101_Open_Text.style.display='none'; Codehighlighter1_91_101_Closed_Image.style.display='inline'; Codehighlighter1_91_101_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_91_101_Closed_Image onclick="this.style.display='none'; Codehighlighter1_91_101_Closed_Text.style.display='none'; Codehighlighter1_91_101_Open_Image.style.display='inline'; Codehighlighter1_91_101_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;a[</span><span style="COLOR: #000000">1001</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_91_101_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_91_101_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;}</span></span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main&nbsp;()<br><img id=Codehighlighter1_116_842_Open_Image onclick="this.style.display='none'; Codehighlighter1_116_842_Open_Text.style.display='none'; Codehighlighter1_116_842_Closed_Image.style.display='inline'; Codehighlighter1_116_842_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_116_842_Closed_Image onclick="this.style.display='none'; Codehighlighter1_116_842_Closed_Text.style.display='none'; Codehighlighter1_116_842_Open_Image.style.display='inline'; Codehighlighter1_116_842_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_116_842_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_116_842_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;第N个字母对应&nbsp;第N个FIBONACI数列的第N项&nbsp;,当然,这是字母,要取模&nbsp;</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1001</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">&nbsp;i&nbsp;)<br><img id=Codehighlighter1_207_265_Open_Image onclick="this.style.display='none'; Codehighlighter1_207_265_Open_Text.style.display='none'; Codehighlighter1_207_265_Closed_Image.style.display='inline'; Codehighlighter1_207_265_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_207_265_Closed_Image onclick="this.style.display='none'; Codehighlighter1_207_265_Closed_Text.style.display='none'; Codehighlighter1_207_265_Open_Image.style.display='inline'; Codehighlighter1_207_265_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_207_265_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_207_265_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a[i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(&nbsp;a[i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">]&nbsp;)&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">26</span><span style="COLOR: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;str;&nbsp;&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;getline&nbsp;(&nbsp;cin&nbsp;,&nbsp;str&nbsp;)&nbsp;)<br><img id=Codehighlighter1_325_826_Open_Image onclick="this.style.display='none'; Codehighlighter1_325_826_Open_Text.style.display='none'; Codehighlighter1_325_826_Closed_Image.style.display='inline'; Codehighlighter1_325_826_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_325_826_Closed_Image onclick="this.style.display='none'; Codehighlighter1_325_826_Closed_Text.style.display='none'; Codehighlighter1_325_826_Open_Image.style.display='inline'; Codehighlighter1_325_826_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_325_826_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_325_826_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;str[i];&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i&nbsp;)<br><img id=Codehighlighter1_407_793_Open_Image onclick="this.style.display='none'; Codehighlighter1_407_793_Open_Text.style.display='none'; Codehighlighter1_407_793_Closed_Image.style.display='inline'; Codehighlighter1_407_793_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_407_793_Closed_Image onclick="this.style.display='none'; Codehighlighter1_407_793_Closed_Text.style.display='none'; Codehighlighter1_407_793_Open_Image.style.display='inline'; Codehighlighter1_407_793_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_407_793_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_407_793_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对每个A-Z字符进行处理&nbsp;</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(&nbsp;isupper&nbsp;(&nbsp;str[i]&nbsp;)&nbsp;)<br><img id=Codehighlighter1_505_666_Open_Image onclick="this.style.display='none'; Codehighlighter1_505_666_Open_Text.style.display='none'; Codehighlighter1_505_666_Closed_Image.style.display='inline'; Codehighlighter1_505_666_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_505_666_Closed_Image onclick="this.style.display='none'; Codehighlighter1_505_666_Closed_Text.style.display='none'; Codehighlighter1_505_666_Open_Image.style.display='inline'; Codehighlighter1_505_666_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_505_666_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_505_666_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%c</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;isupper&nbsp;(&nbsp;str[i]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[num]&nbsp;)&nbsp;</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;str[i]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[num]&nbsp;:&nbsp;str[i]&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;a[num]&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">26</span><span style="COLOR: #000000">&nbsp;);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;<br><img id=Codehighlighter1_711_779_Open_Image onclick="this.style.display='none'; Codehighlighter1_711_779_Open_Text.style.display='none'; Codehighlighter1_711_779_Closed_Image.style.display='inline'; Codehighlighter1_711_779_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_711_779_Closed_Image onclick="this.style.display='none'; Codehighlighter1_711_779_Closed_Text.style.display='none'; Codehighlighter1_711_779_Open_Image.style.display='inline'; Codehighlighter1_711_779_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_711_779_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_711_779_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%c</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;str[i]&nbsp;);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span></div>
</span></span>
<img src ="http://www.cppblog.com/MiYu/aggbug/122193.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/MiYu/" target="_blank">MiYu</a> 2010-08-04 12:47 <a href="http://www.cppblog.com/MiYu/archive/2010/08/04/122193.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>