﻿<?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++博客-ACSeed</title><link>http://www.cppblog.com/Thundercrack/</link><description>谨以此Blog记录自己的AC进度！！
20</description><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 10:20:42 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 10:20:42 GMT</pubDate><ttl>60</ttl><item><title>Wythoff’s Game (威佐夫博弈)</title><link>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186683.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Wed, 08 Aug 2012 12:11:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186683.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/186683.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/186683.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/186683.html</trackback:ping><description><![CDATA[<div><h2>&nbsp;Wythoff&#8217;s Game (威佐夫博弈)</h2><p>原文地址：<br /></p><p style="line-height:180%;"><a href="http://yjq24.blogbus.com/logs/42826226.html">http://yjq24.blogbus.com/logs/42826226.html</a><br /><br /> </p><p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">大致上是这样的：有两堆石子，不妨先认为一堆有10，另一堆有15个，双方轮流取走一些石子，合法的取法有如下两种：</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">1)在一堆石子中取走任意多颗；</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">2)在两堆石子中取走相同多的任意颗；</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">约定取走最后一颗石子的人为赢家，求必败态(必胜策略)。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">这个可以说是MR.Wythoff(Wythoff于1907年提出此游戏)一生全部的贡献吧，我在一篇日志里就说完有点残酷。这个问题好像被用作编程竞赛的题目，网上有很多把它Label为POJ1067，不过如果学编程的人不知道<a href="http://yjq24.blogbus.com/logs/42304551.html"><span style="text-decoration: underline;"><span style="font-family: Courier New; color: #ff0000;">Beatty定理和Beatty序列</span>  </span>  </a>  ，他们所做的只能是找规律而已。不熟悉的人可以先在<a href="http://www.cut-the-knot.org/pythagoras/withoff.shtml"><span style="color: #ff0000;"><span style="text-decoration: underline;">这里</span>  </span>  </a>  玩几局~</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体;"><span style="color: #000000;">简单分析一下，容易知道两堆石头地位是一样的，我们用余下的石子数(a,b)来表示状态，并画在平面直角坐标系上。</span>  </span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;"><span style="font-family: 新宋体;">用之前的定理：</span>  <a href="http://yjq24.blogbus.com/logs/42653430.html"><span style="text-decoration: underline;"><span style="font-family: 新宋体; color: #ff0000;">有限个结点的无回路有向图有唯一的核</span>  </span>  </a>  &nbsp;<span style="font-family: 新宋体;">中所述的方法寻找必败态。先标出(0,0)，然后划去所有(0,k),(k,0), (k,k)的格点；然后找y=x上方未被划去的格点，标出(1,2)，然后划去(1,k),(k,2),(1+k,2+k)，同时标出对称点(2,1)， 划去(2,k),(1,k),(2+k,1+k)；然后在未被划去的点中在y=x上方再找出(3,5)。。。按照这样的方法做下去，如果只列出a&amp; lt;=b的必败态的话，前面的一些是(0,0),(1,2),(3,5),(4,7),(6,10),&#8230;</span>  </span>  </span>  </p> <p><span style="font-size: 12px;"><img src="http://www.cut-the-knot.org/pythagoras/wythoff.gif" alt="" />  </span>   </p> <p><span style="font-size: 12px;"><span style="color: #000000;">接下来就是找规律的过程了，忽略(0,0)，记第n组必败态为(a[n],b[n])</span>  </span>  </p> <div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; padding-bottom: 14px; background-color: #ffffdd; padding-left: 14px; padding-right: 14px; border-top: #000000 1px solid; border-right: #000000 1px solid; padding-top: 14px"> <p><span style="font-size: 12px;"><span style="color: #008080;">命题一：a[n+1]=前n组必败态中未出现过的最小正整数</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">[分析]：如果a[n+1]不是未出现的数中最小的，那么可以从a[n+1]的状态走到一个使a[n+1]更小的状态，和我们的寻找方法矛盾。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #008080;">命题二：b[n]=a[n]+n</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">[分析]：归纳法：若前k个必败态分别为<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_k%20,a_k%20+%20k%7D%20%5Cright%29" alt="" />   ，下证：第k+1个必败态为<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_%7Bk%20+%201%7D%20,a_%7Bk%20+%201%7D%20+%20k%20+%201%7D%20%5Cright%29" alt="" />   </span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">从该第k+1个必败态出发，一共可能走向三类状态，从左边堆拿走一些，从右边堆拿走一些，或者从两堆中拿走一些．下面证明这三类都是胜态．</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">情况一：由命题一，任意一个比a[k+1]小的数都在之前的必败态中出现过，一旦把左边堆拿少了，我们只要再拿成那个数相应的必败态即可。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">情况二（从右边堆拿走不太多）：这使得两堆之间的差变小了，比如拿成了<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_%7Bk%20+%201%7D%20,a_%7Bk%20+%201%7D%20+%20m%7D%20%5Cright%29" alt="" />   ，则可再拿成<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_m%20,a_m%20+%20m%7D%20%5Cright%29" alt="" />  ；</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">情况二（从右边堆拿走很多）：使得右边一堆比左边一堆更少，这时类似于情况一，比如拿成了<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_%7Bk%20+%201%7D%20,a_m%20%7D%20%5Cright%29" alt="" />   (其中a[m] ；</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">情况三：比如拿成<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_m%20,a_m%20+%20k%20+%201%7D%20%5Cright%29" alt="" />   ，则可再拿成<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_m%20,a_m%20+%20m%7D%20%5Cright%29" alt="" />  ．</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="color: #000000;">综上所述，任何从<img src="http://latex.codecogs.com/gif.latex?%5Cleft%28%20%7Ba_%7Bk%20+%201%7D%20,a_%7Bk%20+%201%7D%20+%20k%20+%201%7D%20%5Cright%29" alt="" />  出发走向的状态都可以走回核中．故原命题成立．</span>  </span>  </p> </div> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">以上两个命题对于确定(a[n],b[n])是完备的了，给定(0,0)然后按照这两个命题，就可以写出(1,2),(3,5),(4,7),&#8230;</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">这样我们得到了这个数列的递推式，以下我们把这两个命题当成是(a[n],b[n])的定义。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体;"><span style="color: #000000;">先证明两个性质：</span>  </span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">性质一：核中的a[n],b[n]遍历所有正整数。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">[分析]：由命题一，二可得a[n],b[n]是递增的，且由a[n]的定义显然。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #0080ff;">性质二：A={a[n]:n=1,2,3,&#8230;},B={b[n]:n=1,2,3,&#8230;}，则集合A,B不交。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">[分析]：由核是内固集，显然。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">看到这里大家有没有想到Beatty序列呢，实际上a[n]和b[n]就是一个Beatty序列。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;"><img src="http://latex.codecogs.com/gif.latex?a_n=%5Cleft[%7B%5Calpha%20n%7D%5Cright],b_n=%5Cleft[%7B%5Cbeta%20n%7D%5Cright]" alt="" />   ，有 <img src="http://latex.codecogs.com/gif.latex?a_n+n=%5Cleft[%7B%5Cleft%28%7B%5Calpha+%201%7D%5Cright%29n%7D%5Cright]=%5Cleft[%7B%5Cbeta%20n%7D%5Cright]" alt="" />   ，解方程 <img src="http://latex.codecogs.com/gif.latex?%5Cfrac%7B1%7D%20%7B%7B%5Calpha%20+%201%7D%7D%20+%20%5Cfrac%7B1%7D%20%7B%5Calpha%20%7D%20=%201" alt="" />   </span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">得 <img src="http://latex.codecogs.com/gif.latex?%5Calpha=%5Cfrac%7B%7B%5Csqrt%205+1%7D%7D%7B2%7D" alt="" />   ，到此，我们找到了该必败态的通项公式。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">实际上这组Beatty序列还有一些别的性质，比如当一个数是Fibonacci数的时候，另一个数也是Fibonacci数；而且两者的比值也越来越接近黄金比，这些性质在得到通项公式之后不难证明。</span>  </span>  </p> <p><span style="font-size: 12px;"><span style="font-family: 新宋体; color: #000000;">总的来说，这个问题给我们了哪些启示呢？首先用定理所说的方法找核，然后给出核的规律（递推，或是通项）并且证明。最后附上一张对应的必败态图.</span>  </span>  </p> <p><span style="font-size: 12px;"><a href="http://yjq24.blogbus.com/files/20090724032230.jpeg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wythoff" src="http://yjq24.blogbus.com/files/20090724032234.jpeg" alt="wythoff" border="0" height="330" width="480" /></a><a href="http://yjq24.blogbus.com/files/20090724032230.jpeg">  </a>  </span>  </p></div><img src ="http://www.cppblog.com/Thundercrack/aggbug/186683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-08-08 20:11 <a href="http://www.cppblog.com/Thundercrack/archive/2012/08/08/186683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 2886  没啥，线段树基础应用，纪念一下队长教的打素数的方法</title><link>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186665.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Wed, 08 Aug 2012 08:52:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186665.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/186665.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/08/08/186665.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/186665.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/186665.html</trackback:ping><description><![CDATA[<div>#include&lt;cstdio&gt;</div><div>#include&lt;cstring&gt;</div><div>#include&lt;algorithm&gt;</div><div>using namespace std;</div><div></div><div>const int maxn = 500010;</div><div>struct NN</div><div>{</div><div>&nbsp; &nbsp; char s[20];</div><div>&nbsp; &nbsp; int num;</div><div>} ch[maxn];</div><div></div><div>int prim[maxn], plen;</div><div>bool vis[maxn];</div><div>long long cc[maxn];</div><div></div><div>void mklist()</div><div>{</div><div>&nbsp; &nbsp; plen = 0;</div><div>&nbsp; &nbsp; memset(prim, false, sizeof(prim));</div><div>&nbsp; &nbsp; for(int i = 2; i * i &lt;= maxn; ++i)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if(!prim[i])</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for(int j = i; j * i &lt;= maxn; ++j)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!prim[i * j])</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prim[i * j] = i;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; }</div><div>}</div><div></div><div>long long split(int x)</div><div>{</div><div>&nbsp; &nbsp; long long ans = 1;</div><div>&nbsp; &nbsp; int cur = x;</div><div>&nbsp; &nbsp; if(x == 1) return 1;</div><div>&nbsp; &nbsp; int tmp = prim[cur];</div><div>&nbsp; &nbsp; while(prim[cur] != 0)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int cnt = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; while(cur % tmp == 0)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++cnt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cur /= tmp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ans *= cnt + 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; tmp = prim[cur];</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; if(cur != 1)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ans *= 2;</div><div>&nbsp; &nbsp; return ans;</div><div>}</div><div></div><div>struct node</div><div>{</div><div>&nbsp; &nbsp; int l, r, mid;</div><div>&nbsp; &nbsp; int count;</div><div>&nbsp; &nbsp; node()</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; count = 0;</div><div>&nbsp; &nbsp; }</div><div>} seg[3 * maxn];</div><div></div><div>void build(int l, int r, int num)</div><div>{</div><div>&nbsp; &nbsp; seg[num].l = l;</div><div>&nbsp; &nbsp; seg[num].r = r;</div><div>&nbsp; &nbsp; seg[num].mid = (l + r) &gt;&gt; 1;</div><div>&nbsp; &nbsp; if(l + 1 == r)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; seg[num].count = 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return ;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; build(l, seg[num].mid, num &lt;&lt; 1);</div><div>&nbsp; &nbsp; build(seg[num].mid, r, num &lt;&lt; 1 | 1);</div><div>&nbsp; &nbsp; seg[num].count = seg[num &lt;&lt; 1].count + seg[num &lt;&lt; 1 | 1].count;</div><div>}</div><div></div><div>int search(int k, int num)</div><div>{</div><div>&nbsp; &nbsp; if(seg[num].l + 1 == seg[num].r)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; seg[num].count--;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return seg[num].l;</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; seg[num].count--;</div><div>&nbsp; &nbsp; if(k &lt;= seg[num &lt;&lt; 1].count)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return search(k, num &lt;&lt; 1);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; else</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return search(k - seg[num &lt;&lt; 1].count, num &lt;&lt; 1 | 1);</div><div>&nbsp; &nbsp; }</div><div>}</div><div></div><div>int n, k;</div><div>int main()</div><div>{</div><div>&nbsp; &nbsp;// freopen("in.txt", "r", stdin);</div><div>&nbsp; &nbsp; mklist();</div><div>&nbsp; &nbsp; while(scanf("%d%d", &amp;n, &amp;k) != EOF)</div><div>&nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 1; i &lt;= n; ++i)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; scanf("%s%d", ch[i].s, &amp;ch[i].num);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int res = 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int mac = 1;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; for(int i = n / 2 + 1; i &lt;= n; ++i)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int tmp = split(i);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(res &lt; tmp)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; res = tmp;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mac = i;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; build(1, n + 1, 1);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int st = k;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int t = search(k, 1);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if(mac == 1)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printf("%s %d\n", ch[t].s, res);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; int ans = t;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 2; i &lt;= mac; ++i)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(ch[ans].num &gt; 0)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; st = (st + ch[ans].num - 1) % seg[1].count;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(st == 0)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; st = seg[1].count;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ans = search(st, 1);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; st = (st + ch[ans].num) % seg[1].count;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(st &lt;= 0)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; st += seg[1].count;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ans = search(st, 1);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; printf("%s %d\n", ch[ans].s, res);</div><div>&nbsp; &nbsp; }</div><div>&nbsp; &nbsp; return 0;</div><div>}</div><img src ="http://www.cppblog.com/Thundercrack/aggbug/186665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-08-08 16:52 <a href="http://www.cppblog.com/Thundercrack/archive/2012/08/08/186665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva 11029</title><link>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172769.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Wed, 25 Apr 2012 13:52:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172769.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/172769.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/172769.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/172769.html</trackback:ping><description><![CDATA[太失败了！！<br />这题主要是log的性质，假设 log10(c) = x = a + b;<br />其中a是x的整数部分，b是x的小数部分，而 10^b = 10^(x - a) = 10^x / 10^a = c / 10^a;<br />可见a只影响c的小数点的位置，可以直接去掉，这样可以求出数的前三位，后三位就不用说了吧；<br /><br />PS：真的好强大<img src ="http://www.cppblog.com/Thundercrack/aggbug/172769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-04-25 21:52 <a href="http://www.cppblog.com/Thundercrack/archive/2012/04/25/172769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva 571</title><link>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172759.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Wed, 25 Apr 2012 11:47:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172759.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/172759.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/04/25/172759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/172759.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/172759.html</trackback:ping><description><![CDATA[<div>思路只有bfs，可是分类在数学里，所以极力寻求数学方法，分析在这里<br /><br />http://www.cnblogs.com/devymex/archive/2010/08/04/1792288.html<br /><br />下面简单证明： 当n从0到B-1变化时，r可以取到0到B-1之间的任何值<br />用反正法：<br />na % B可以取到的值只有 0 ~ B-1, 当n从0 ~ B-1时，假设r不能取完0 ~ B-1, 则必有n取两个不同值时% B值相同，<br />设为n1,n2;则n1A % B = x,n2A % B = x, 两边分别相比，得 n1 / n2 = 1, 即 n1 = n2, 与假设矛盾，证毕！！<br /><br />PS: a 和 b 互质说明什么？ 说明gcd(a,b) = 1 &amp;&amp; lcm(a,b) = a * b &amp;&amp; for n &lt;- 0 ~ b - 1 &nbsp; n * a % b 可以取到 0 ～ b - 1;</div><img src ="http://www.cppblog.com/Thundercrack/aggbug/172759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-04-25 19:47 <a href="http://www.cppblog.com/Thundercrack/archive/2012/04/25/172759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教程</title><link>http://www.cppblog.com/Thundercrack/archive/2012/04/16/171660.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Mon, 16 Apr 2012 13:37:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/04/16/171660.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/171660.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/04/16/171660.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/171660.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/171660.html</trackback:ping><description><![CDATA[<a href="http://coolshell.cn/articles/3083.html">http://coolshell.cn/articles/3083.html</a>&nbsp;<br /><br /><a href="http://blog.csdn.net/shinehoo/article/details/6755464">http://blog.csdn.net/shinehoo/article/details/6755464</a>&nbsp;<br /><a href="http://blog.csdn.net/shinehoo/article/category/816995">http://blog.csdn.net/shinehoo/article/category/816995</a>&nbsp;<br /><a href="http://www.w3school.com.cn/">http://www.w3school.com.cn/</a>&nbsp;<br /><a href="http://coolshell.cn/articles/4990.html">http://coolshell.cn/articles/4990.html</a>&nbsp;<br /><a href="http://woodpecker.org.cn/abyteofpython_cn/chinese/index.html">http://woodpecker.org.cn/abyteofpython_cn/chinese/index.html</a><img src ="http://www.cppblog.com/Thundercrack/aggbug/171660.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-04-16 21:37 <a href="http://www.cppblog.com/Thundercrack/archive/2012/04/16/171660.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>(转）ACM基本算法分类、推荐学习资料和配套poj习题 分类</title><link>http://www.cppblog.com/Thundercrack/archive/2012/04/05/170201.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Thu, 05 Apr 2012 12:51:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2012/04/05/170201.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/170201.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2012/04/05/170201.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/170201.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/170201.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em;"> </p>     <p style="text-indent: 2em;">一.动态规划</p> <p style="text-indent: 2em;">参考资料：</p> <p style="text-indent: 2em;">刘汝佳《算法艺术与信息学竞赛》《算法导论》</p> <p style="text-indent: 2em;">推荐题目：</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1141"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1141</span></a> </p> <p style="text-indent: 2em;">简单</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2288"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2288</span></a> </p> <p style="text-indent: 2em;">中等，经典TSP问题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2411"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2411</span></a> </p> <p style="text-indent: 2em;">中等，状态压缩DP</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1112"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1112</span></a> </p> <p style="text-indent: 2em;">中等</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1848"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1848</span></a> </p> <p style="text-indent: 2em;">中等，树形DP。可参考《算法艺术与信息学竞赛》动态规划一节的树状模型</p> <p style="text-indent: 2em;"><a href="http://acm.zju.edu.cn/show_problem.php?pid=1234"><span style="color: #6aa50d;">http://acm.zju.edu.cn/show_problem.php?pid=1234</span></a> </p> <p style="text-indent: 2em;">中等，《算法艺术与信息学竞赛》中的习题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1947"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1947</span></a> </p> <p style="text-indent: 2em;">中等，《算法艺术与信息学竞赛》中的习题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1946"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1946</span></a> </p> <p style="text-indent: 2em;">中等，《算法艺术与信息学竞赛》中的习题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1737"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1737</span></a> </p> <p style="text-indent: 2em;">中等，递推</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1821"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1821</span></a> </p> <p style="text-indent: 2em;">中等，需要减少冗余计算</p> <p style="text-indent: 2em;"><a href="http://acm.zju.edu.cn/show_problem.php?pid=2561"><span style="color: #6aa50d;">http://acm.zju.edu.cn/show_problem.php?pid=2561</span></a> </p> <p style="text-indent: 2em;">中等，四边形不等式的简单应用</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1038"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1038</span></a> </p> <p style="text-indent: 2em;">较难，状态压缩DP，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1390"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1390</span></a> </p> <p style="text-indent: 2em;">较难，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3017"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3017</span></a> </p> <p style="text-indent: 2em;">较难，需要配合数据结构优化（我的题目^_^）</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1682"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1682</span></a> </p> <p style="text-indent: 2em;">较难，写起来比较麻烦</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2047"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2047</span></a> </p> <p style="text-indent: 2em;">较难</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2152"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2152</span></a> </p> <p style="text-indent: 2em;">难，树形DP</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3028"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3028</span></a> </p> <p style="text-indent: 2em;">难，状态压缩DP，题目很有意思</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3124"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3124</span></a> </p> <p style="text-indent: 2em;">难</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2915"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2915</span></a> </p> <p style="text-indent: 2em;">非常难</p> <p style="text-indent: 2em;">&nbsp;</p> <p style="text-indent: 2em;">二.搜索</p> <p style="text-indent: 2em;">参考资料：</p> <p style="text-indent: 2em;">刘汝佳《算法艺术与信息学竞赛》</p> <p style="text-indent: 2em;">推荐题目：</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1011"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1011</span></a> </p> <p style="text-indent: 2em;">简单，深搜入门题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1324"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1324</span></a> </p> <p style="text-indent: 2em;">中等，广搜</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2044"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2044</span></a> </p> <p style="text-indent: 2em;">中等，广搜</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2286"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2286</span></a> </p> <p style="text-indent: 2em;">较难，广搜</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1945"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1945</span></a> </p> <p style="text-indent: 2em;">难，IDA*，迭代加深搜索，需要较好的启发函数</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2449"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2449</span></a> </p> <p style="text-indent: 2em;">难，可重复K最短路，A*。可参考解题报告:</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144</span></a> </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1190"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1190</span></a> </p> <p style="text-indent: 2em;">难，深搜剪枝，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1084"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1084</span></a> </p> <p style="text-indent: 2em;">难，《算法艺术与信息学竞赛》习题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2989"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2989</span></a> </p> <p style="text-indent: 2em;">难，深搜</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1167"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1167</span></a> </p> <p style="text-indent: 2em;">较难，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1069"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1069</span></a> </p> <p style="text-indent: 2em;">很难</p> <p style="text-indent: 2em;">三. 常用数据结构</p> <p style="text-indent: 2em;">参考资料：</p> <p style="text-indent: 2em;">刘汝佳《算法艺术与信息学竞赛》</p> <p style="text-indent: 2em;">《算法导论》</p> <p style="text-indent: 2em;">线段树资料：</p> <p style="text-indent: 2em;"><a href="http://home.ustc.edu.cn/%7Ezhuhcheng/ACM/segment_tree.pdf"><span style="color: #6aa50d;">http://home.ustc.edu.cn/~zhuhcheng/ACM/segment_tree.pdf</span></a> </p> <p style="text-indent: 2em;">树状数组资料</p> <p style="text-indent: 2em;"><a href="http://home.ustc.edu.cn/%7Ezhuhcheng/ACM/tree.ppt"><span style="color: #6aa50d;">http://home.ustc.edu.cn/~zhuhcheng/ACM/tree.ppt</span></a> </p> <p style="text-indent: 2em;">关于线段树和树状数组更多相关内容可在网上搜到</p> <p style="text-indent: 2em;">后缀数组资料</p> <p style="text-indent: 2em;"><a href="http://home.ustc.edu.cn/%7Ezhuhcheng/ACM/suffix_array.pdf"><span style="color: #6aa50d;">http://home.ustc.edu.cn/~zhuhcheng/ACM/suffix_array.pdf</span></a> </p> <p style="text-indent: 2em;"><a href="http://home.ustc.edu.cn/%7Ezhuhcheng/ACM/linear_suffix.pdf"><span style="color: #6aa50d;">http://home.ustc.edu.cn/~zhuhcheng/ACM/linear_suffix.pdf</span></a> </p> <p style="text-indent: 2em;">推荐题目</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2482"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2482</span></a> </p> <p style="text-indent: 2em;">较难，线段树应用，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1151"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1151</span></a> </p> <p style="text-indent: 2em;">简单，线段树应用矩形面积并，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3225"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3225</span></a> </p> <p style="text-indent: 2em;">较难，线段树应用，可参考解题报告</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1233</span></a> </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2155"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2155</span></a> </p> <p style="text-indent: 2em;">难，二维树状数组。</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2777"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2777</span></a> </p> <p style="text-indent: 2em;">中等，线段树应用。</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2274"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2274</span></a> </p> <p style="text-indent: 2em;">难，堆的应用，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.zju.edu.cn/show_problem.php?pid=2334"><span style="color: #6aa50d;">http://acm.zju.edu.cn/show_problem.php?pid=2334</span></a> </p> <p style="text-indent: 2em;">中等，左偏树，二项式堆或其他可合并堆的应用。</p> <p style="text-indent: 2em;">左偏树参考 http://www.nist.gov/dads/HTML/leftisttree.html </p> <p style="text-indent: 2em;">二项式堆参见《算法导论》相关章节</p> <p style="text-indent: 2em;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1182 </p> <p style="text-indent: 2em;">中等，并查集</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1816"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1816</span></a> </p> <p style="text-indent: 2em;">中等，字典树</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2778"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2778</span></a> </p> <p style="text-indent: 2em;">较难，多串匹配树</p> <p style="text-indent: 2em;">参考： http://home.ustc.edu.cn/~zhuhcheng/ACM/zzy2004.pdf </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1743"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1743</span></a> </p> <p style="text-indent: 2em;">难，后缀数组</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2774"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2774</span></a> </p> <p style="text-indent: 2em;">较难，最长公共子串，经典问题，后缀数组</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2758"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2758</span></a> </p> <p style="text-indent: 2em;">很难，后缀数组</p> <p style="text-indent: 2em;">可参考解题报告</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1178</span></a> </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2448"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2448</span></a> </p> <p style="text-indent: 2em;">很难，数据结构综合运用</p> <p style="text-indent: 2em;">四.图论基础</p> <p style="text-indent: 2em;">参考资料：</p> <p style="text-indent: 2em;">刘汝佳《算法艺术与信息学竞赛》《算法导论》《网络算法与复杂性理论》谢政</p> <p style="text-indent: 2em;">推荐题目: </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2337"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2337</span></a> </p> <p style="text-indent: 2em;">简单，欧拉路</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3177"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3177</span></a> </p> <p style="text-indent: 2em;">中等，无向图割边</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2942"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2942</span></a> </p> <p style="text-indent: 2em;">较难，无向图双连通分支</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1639"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1639</span></a> </p> <p style="text-indent: 2em;">中等，最小度限制生成树，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2728"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2728</span></a> </p> <p style="text-indent: 2em;">中等，最小比率生成树，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3013"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3013</span></a> </p> <p style="text-indent: 2em;">简单，最短路问题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1275"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1275</span></a> </p> <p style="text-indent: 2em;">中等，差分约束系统，Bellman-Ford求解，《算法艺术与信息学竞赛》中有解答</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1252"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1252</span></a> </p> <p style="text-indent: 2em;">简单，Bellman-Ford</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1459"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1459</span></a> </p> <p style="text-indent: 2em;">中等，网络流</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2391"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2391</span></a> </p> <p style="text-indent: 2em;">较难，网络流</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1325"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1325</span></a> </p> <p style="text-indent: 2em;">中等，二部图最大匹配</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2226"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2226</span></a> </p> <p style="text-indent: 2em;">较难，二部图最大匹配</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2195"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2195</span></a> </p> <p style="text-indent: 2em;">中等，二部图最大权匹配</p> <p style="text-indent: 2em;">KM算法参考《网络算法与复杂性理论》</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2516"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2516</span></a> </p> <p style="text-indent: 2em;">较难，二部图最大权匹配</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1986"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1986</span></a> </p> <p style="text-indent: 2em;">中等，LCA（最近公共祖先）问题</p> <p style="text-indent: 2em;">参考Tarjan's LCA algorithm 《算法导论》第21章习题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2723"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2723</span></a> </p> <p style="text-indent: 2em;">较难，2-SAT问题</p> <p style="text-indent: 2em;">参考：<a href="http://home.ustc.edu.cn/%7Ezhuhcheng/ACM/2-SAT.PPT"><span style="color: #6aa50d;">http://home.ustc.edu.cn/~zhuhcheng/ACM/2-SAT.PPT</span></a> </p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2749"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2749</span></a> </p> <p style="text-indent: 2em;">较难，2-SAT问题</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3164"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3164</span></a> </p> <p style="text-indent: 2em;">较难，最小树形图</p> <p style="text-indent: 2em;">参考《网络算法与复杂性理论》中朱-刘算法</p> <p style="text-indent: 2em;">五.数论及组合计数基础</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1811"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1811</span></a> </p> <p style="text-indent: 2em;">简单，素数判定，大数分解</p> <p style="text-indent: 2em;">参考算法导论相关章节</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2888"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2888</span></a> </p> <p style="text-indent: 2em;">较难，Burnside引理</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2891"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2891</span></a> </p> <p style="text-indent: 2em;">中等，解模方程组</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2154"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2154</span></a> </p> <p style="text-indent: 2em;">中等，经典问题，波利亚定理</p> <p style="text-indent: 2em;"><a href="http://cs.scu.edu.cn/soj/problem.act%3Cwbr%3Eion?id=2703"><span style="color: #6aa50d;">http://cs.scu.edu.cn/soj/problem.action?id=2703</span></a> </p> <p style="text-indent: 2em;">难，极好的题目，Burnside引理+模线性方程组</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2764"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=2764</span></a> </p> <p style="text-indent: 2em;">较难，需要数学方法，该方法在《具体数学》第七章有讲</p> <p style="text-indent: 2em;"><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1977"><span style="color: #6aa50d;">http://acm.pku.edu.cn/JudgeOnline/problem?id=1977</span></a> </p> <p style="text-indent: 2em;">简单，矩阵快速乘法</p><img src ="http://www.cppblog.com/Thundercrack/aggbug/170201.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2012-04-05 20:51 <a href="http://www.cppblog.com/Thundercrack/archive/2012/04/05/170201.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACM 进阶之路（转</title><link>http://www.cppblog.com/Thundercrack/archive/2011/12/15/162151.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Thu, 15 Dec 2011 02:37:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2011/12/15/162151.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/162151.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2011/12/15/162151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/162151.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/162151.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: Arial; font-size: 12px; line-height: 18px; background-color: #ffffff; "><table style="table-layout: fixed; width: 960px; "><tbody><tr><td style="font-family: Arial; word-wrap: break-word; word-break: break-all; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 12px; line-height: 18px; "><div id="blog_text" class="cnt" style="font-family: Arial; word-wrap: break-word; word-break: normal; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 14px; line-height: 20px; color: #333333; overflow-x: hidden; overflow-y: hidden; position: relative !important; "><div class="cnt" style="font-family: Arial; word-wrap: break-word; word-break: normal; visibility: visible !important; zoom: 1 !important; filter: none; font-size: 14px; line-height: normal; color: #333333; overflow-x: hidden; overflow-y: hidden; position: relative !important; "><p style="line-height: normal; "><font color="#000000" style="line-height: normal; ">一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.<br />ACM主要是考算法的,主要时间是花在思考算法上，不是花在写程序与debug上。</font></p><p style="line-height: normal; "><font color="#000000" style="line-height: normal; ">下面给个计划你练练：</font></p><p style="line-height: normal; "><strong style="line-height: normal; "><font color="#0000ff" style="line-height: normal; ">第一阶段：练经典常用算法，下面的每个算法给我打上十到二十遍，同时自己精简代码，</font><br style="line-height: normal; " /></strong><font color="#000000" style="line-height: normal; ">因为太常用，所以要练到写时不用想，10-15分钟内打完，甚至关掉显示器都可以把程序打<br style="line-height: normal; " />出来。<br style="line-height: normal; " /></font></p><p style="line-height: normal; "><font size="+0" style="line-height: normal; ">1.最短路(Floyd、Dijstra,BellmanFord)&nbsp;<br style="line-height: normal; " />2.最小生成树(先写个prim,kruscal要用并查集，不好写)&nbsp;<br style="line-height: normal; " />3.大数（高精度）加减乘除&nbsp;<br style="line-height: normal; " />4.二分查找. (代码可在五行以内)&nbsp;<br style="line-height: normal; " />5.叉乘、判线段相交、然后写个凸包.&nbsp;<br style="line-height: normal; " />6.BFS、DFS,同时熟练hash表(要熟，要灵活,代码要简)&nbsp;<br style="line-height: normal; " />7.数学上的有：辗转相除（两行内），线段交点、多角形面积公式.&nbsp;<br style="line-height: normal; " />8. 调用系统的qsort, 技巧很多，慢慢掌握.&nbsp;<br style="line-height: normal; " />9. 任意进制间的转换</font></p><p style="line-height: normal; "><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">第二阶段：练习复杂一点，但也较常用的算法。</strong></font>&nbsp;<br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">如：&nbsp;<br style="line-height: normal; " />1. 二分图匹配（匈牙利），最小路径覆盖&nbsp;<br style="line-height: normal; " />2. 网络流，最小费用流。&nbsp;<br style="line-height: normal; " />3. 线段树.&nbsp;<br style="line-height: normal; " />4. 并查集。&nbsp;<br style="line-height: normal; " />5. 熟悉动态规划的各个典型：LCS、最长递增子串、三角剖分、记忆化dp&nbsp;<br style="line-height: normal; " />6.博弈类算法。博弈树，二进制法等。&nbsp;<br style="line-height: normal; " />7.最大团，最大独立集。&nbsp;<br style="line-height: normal; " />8.判断点在多边形内。&nbsp;<br style="line-height: normal; " />9. 差分约束系统.&nbsp;<br style="line-height: normal; " />10. 双向广度搜索、A*算法，最小耗散优先.<br style="line-height: normal; " />===========================================================</font></p><p style="line-height: normal; "><br style="line-height: normal; " /><font color="#ff0000" style="line-height: normal; "><strong style="line-height: normal; ">ACMer必备知识</strong></font>（任重而道远......）</p><p style="line-height: normal; "><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">图论</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;<font color="#000000" style="line-height: normal; ">&nbsp;路径问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0/1边权最短路径<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BFS<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 非负边权最短路径（Dijkstra）<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可以用Dijkstra解决问题的特征<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 负边权最短路径<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bellman-Ford<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bellman-Ford的Yen-氏优化<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 差分约束系统<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Floyd<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 广义路径问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传递闭包<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 极小极大距离 / 极大极小距离<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Euler Path / Tour<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 圈套圈算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 混合图的 Euler Path / Tour<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hamilton Path / Tour<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 特殊图的Hamilton Path / Tour 构造<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 生成树问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最小生成树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第k小生成树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最优比率生成树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0/1分数规划<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 度限制生成树<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 连通性问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 强大的DFS算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 无向图连通性<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 割点<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 割边<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二连通分支<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有向图连通性<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 强连通分支<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2-SAT<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最小点基<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 有向无环图<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 拓扑排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有向无环图与动态规划的关系<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 二分图匹配问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般图问题与二分图问题的转换思路<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最大匹配<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有向图的最小路径覆盖<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 / 1矩阵的最小覆盖<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 完备匹配<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最优匹配<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 稳定婚姻<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 网络流问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网络流模型的简单特征和与线性规划的关系<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最大流最小割定理<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最大流问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有上下界的最大流问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 循环流<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最小费用最大流 / 最大费用最大流<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 弦图的性质和判定<br style="line-height: normal; " /><br style="line-height: normal; " /></font><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; "><br style="line-height: normal; " />组合数学</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">&nbsp;&nbsp;&nbsp; 解决组合数学问题时常用的思想<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 逼近<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 递推 / 动态规划<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 概率问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Polya定理</font><br style="line-height: normal; " /><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">计算几何 / 解析几何</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;<font color="#000000" style="line-height: normal; ">&nbsp;计算几何的核心：叉积 / 面积<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 解析几何的主力：复数<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 基本形<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 直线，线段<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多边形<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 凸多边形 / 凸包<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 凸包算法的引进，卷包裹法<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; Graham扫描法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 水平序的引进，共线凸包的补丁<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 完美凸包算法<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 相关判定<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 两直线相交<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 两线段相交<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点在任意多边形内的判定<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点在凸多边形内的判定<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 经典问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最小外接圆<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 近似O(n)的最小外接圆算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 点集直径<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 旋转卡壳，对踵点<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 多边形的三角剖分</font><br style="line-height: normal; " /><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">数学 / 数论</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">&nbsp;&nbsp; 最大公约数<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Euclid算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 扩展的Euclid算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同余方程 / 二元一次不定方程<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同余方程组<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 线性方程组<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 高斯消元法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 解mod 2域上的线性方程组<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 整系数方程组的精确解法<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 矩阵<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 行列式的计算<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 利用矩阵乘法快速计算递推关系<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 分数<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分数树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 连分数逼近<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 数论计算<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 求N的约数个数<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 求phi(N)<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 求约数和<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 快速数论变换<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8230;&#8230;<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 素数问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 概率判素算法<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 概率因子分解<br style="line-height: normal; " /><br style="line-height: normal; " /><br style="line-height: normal; " /></font><strong style="line-height: normal; "><font color="#0000ff" style="line-height: normal; ">数据结构</font><br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#000000" style="line-height: normal; ">组织结构<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二叉堆<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 左偏树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二项树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 胜者树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 跳跃表<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 样式图标<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 斜堆<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reap<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 统计结构<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 树状数组<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虚二叉树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 线段树<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 矩形面积并<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 圆形面积并<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 关系结构<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hash表<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 并查集<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 路径压缩思想的应用<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; STL中的数据结构<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vector<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deque<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set / map<br style="line-height: normal; " /><br style="line-height: normal; " /></font><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">动态规划 / 记忆化搜索</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;<font color="#000000" style="line-height: normal; ">&nbsp;动态规划和记忆化搜索在思考方式上的区别<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 最长子序列系列问题<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最长不下降子序列<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最长公共子序列<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最长公共不下降子序列<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 一类NP问题的动态规划解法<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 树型动态规划<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 背包问题<br style="line-height: normal; " /><br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 动态规划的优化<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 四边形不等式<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 函数的凸凹性<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 状态设计<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 规划方向<br style="line-height: normal; " /><br style="line-height: normal; " /><br style="line-height: normal; " /></font><strong style="line-height: normal; "><font color="#0000ff" style="line-height: normal; ">线性规划</font><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">常用思想<br style="line-height: normal; " /></strong></font><br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">&nbsp;&nbsp;&nbsp; 二分<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 最小表示法</font><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; ">串</strong></font><br style="line-height: normal; " /><br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">&nbsp;&nbsp;&nbsp; KMP<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; Trie结构<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 后缀树/后缀数组<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; LCA/RMQ<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 有限状态自动机理论</font><br style="line-height: normal; " /><font color="#0000ff" style="line-height: normal; "><strong style="line-height: normal; "><br style="line-height: normal; " />排序</strong></font><br style="line-height: normal; " /><font color="#000000" style="line-height: normal; ">&nbsp;&nbsp;&nbsp; 选择/冒泡<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 快速排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 堆排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 归并排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 基数排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 拓扑排序<br style="line-height: normal; " />&nbsp;&nbsp;&nbsp; 排序网络</font></strong></strong></p></div></div></td></tr></tbody></table></span><img src ="http://www.cppblog.com/Thundercrack/aggbug/162151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2011-12-15 10:37 <a href="http://www.cppblog.com/Thundercrack/archive/2011/12/15/162151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>poj 1896  Code Formatting</title><link>http://www.cppblog.com/Thundercrack/archive/2011/11/25/160978.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Fri, 25 Nov 2011 11:32:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2011/11/25/160978.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/160978.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2011/11/25/160978.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/160978.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/160978.html</trackback:ping><description><![CDATA[<a href="http://poj.org/problem?id=1896">http://poj.org/problem?id=1896<br /></a><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2463">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2463</a><br />格式化一段代码，格式题目里说的很清楚了。<br />zoj上的只不过多CASE而已<br /><br />直接上code:<span class="Apple-style-span" style="font-size: 13px; background-color: #eeeeee; "><span style="color: #008080; ">&nbsp;<br />1</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstdio</span><span style="color: #000000; ">&gt;</span></span><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">cstring</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></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: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;s[</span><span style="color: #000000; ">20000000</span><span style="color: #000000; ">];<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;lev&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;printsp()<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&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; ">0</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; ">4</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;lev;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">i)&nbsp;putchar(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main()<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">freopen("in.txt","r",stdin);<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">freopen("out.txt","w",stdout);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;c;<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&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: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(;&nbsp;scanf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%c</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">c)&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;EOF;)&nbsp;{<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(c&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">'</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;c&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; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;c&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">13</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;c&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">9</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s[len</span><span style="color: #000000; ">++</span><span style="color: #000000; ">]&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;c;<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;++i)&nbsp;putchar(s[i]);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; ">&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&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; ">0</span><span style="color: #000000; ">;&nbsp;i&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">&nbsp;len;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">i)&nbsp;{<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</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; ">)&nbsp;{<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; ">&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 /></span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lev</span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">&nbsp;{<br /></span><span style="color: #008080; ">29</span>&nbsp;<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; ">(s[i]&nbsp;</span><span style="color: #000000; ">!=</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; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;s[i]&nbsp;</span><span style="color: #000000; ">!=</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; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;s[i]&nbsp;</span><span style="color: #000000; ">!=</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;{<br /></span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #000000; ">&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; ">(flag)&nbsp;printsp();flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #000000; ">&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; ">(s[i]&nbsp;</span><span style="color: #000000; ">==</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;printf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #000000; ">&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;putchar(s[i]);<br /></span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">34</span>&nbsp;<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; ">(s[i]&nbsp;</span><span style="color: #000000; ">==</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;{<br /></span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #000000; ">&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; ">;\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #000000; ">&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;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(s[i]&nbsp;</span><span style="color: #000000; ">==</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;{<br /></span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #000000; ">&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; ">&nbsp;{\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">lev;<br /></span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #000000; ">&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;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(s[i]&nbsp;</span><span style="color: #000000; ">==</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;{<br /></span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lev</span><span style="color: #000000; ">--</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printsp();<br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #000000; ">&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; ">}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #000000; ">&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;++i;<br /></span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(s[i]&nbsp;!=&nbsp;'{'&nbsp;&amp;&amp;&nbsp;s[i]&nbsp;!=&nbsp;';'&nbsp;&amp;&amp;&nbsp;i&nbsp;&lt;&nbsp;len)&nbsp;{<br /></span><span style="color: #008080; ">48</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putchar(s[i]);<br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++i;<br /></span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">51</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&nbsp;&lt;&nbsp;len&nbsp;&amp;&amp;&nbsp;s[i]&nbsp;==&nbsp;';')<br /></span><span style="color: #008080; ">52</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(";\n");<br /></span><span style="color: #008080; ">53</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if(i&nbsp;&lt;&nbsp;len&nbsp;&amp;&amp;&nbsp;s[i]&nbsp;==&nbsp;'{')&nbsp;{<br /></span><span style="color: #008080; ">54</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;=&nbsp;true;<br /></span><span style="color: #008080; ">55</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("\n{\n");</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">56</span>&nbsp;<span style="color: #000000; ">&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;&nbsp;&nbsp;++lev;<br /></span><span style="color: #008080; ">57</span>&nbsp;<span style="color: #008000; ">&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: #008080; ">58</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&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; ">(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; ">&lt;</span><span style="color: #000000; ">&nbsp;len&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;s[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; ">'</span><span style="color: #000000; ">{</span><span style="color: #000000; ">'</span><span style="color: #000000; ">)&nbsp;{<br /></span><span style="color: #008080; ">59</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">60</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&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; ">\n{\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">61</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">i;</span><span style="color: #000000; ">++</span><span style="color: #000000; ">lev;<br /></span><span style="color: #008080; ">62</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">63</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">64</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">65</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080; ">66</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">printf("fuck!!!\n");</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">67</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">68</span>&nbsp;<span style="color: #000000; ">}</span></div><img src ="http://www.cppblog.com/Thundercrack/aggbug/160978.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2011-11-25 19:32 <a href="http://www.cppblog.com/Thundercrack/archive/2011/11/25/160978.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>uva   530</title><link>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159972.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Fri, 11 Nov 2011 14:47:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159972.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/159972.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159972.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/159972.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/159972.html</trackback:ping><description><![CDATA[求一个组合数，保证结果在整形数内，给定n和k，求C(n,.k);<br />比较恶心，开始分解质因数，因为N!容易分解质因子，然后必须打出整形内的素数，<br />果断舍弃，想想不会超过整数，用公式算分子数不会太多，貌似不会超时，试试吧，成功了！！<br />C(n,n/2)最大了，n到几十就超int了，所以k不会很大，这里的k是指小的，如果k &gt; n / 2 可以<br />C(n,k) = C(n,n-k),用n-k代替k,边乘边除，12MS AC!<img src ="http://www.cppblog.com/Thundercrack/aggbug/159972.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2011-11-11 22:47 <a href="http://www.cppblog.com/Thundercrack/archive/2011/11/11/159972.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>神棍节3道水题</title><link>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159963.html</link><dc:creator>ACSeed</dc:creator><author>ACSeed</author><pubDate>Fri, 11 Nov 2011 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159963.html</guid><wfw:comment>http://www.cppblog.com/Thundercrack/comments/159963.html</wfw:comment><comments>http://www.cppblog.com/Thundercrack/archive/2011/11/11/159963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/Thundercrack/comments/commentRss/159963.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Thundercrack/services/trackbacks/159963.html</trackback:ping><description><![CDATA[<div><a href="http://acm.hdu.edu.cn/diy/contest_show.php?cid=13622">http://acm.hdu.edu.cn/diy/contest_show.php?cid=13622<br /></a>第1题神棍数最后三位是471，前面是k-1;<br />第2题简单模运算<br />第3题先从n个中选出m个数码兽，然后这m个数码兽做错位排列即 ans = C(n,m) * D(m)；<a href="http://acm.hdu.edu.cn/diy/contest_show.php?cid=13622"></a></div><div></div><img src ="http://www.cppblog.com/Thundercrack/aggbug/159963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Thundercrack/" target="_blank">ACSeed</a> 2011-11-11 16:25 <a href="http://www.cppblog.com/Thundercrack/archive/2011/11/11/159963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>