﻿<?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++博客-A Crazy Man</title><link>http://www.cppblog.com/notonlysuccess/</link><description>ACM</description><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2026 19:35:42 GMT</lastBuildDate><pubDate>Fri, 03 Apr 2026 19:35:42 GMT</pubDate><ttl>60</ttl><item><title>新博客</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/11/16/101134.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Mon, 16 Nov 2009 11:45:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/11/16/101134.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/101134.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/11/16/101134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/101134.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/101134.html</trackback:ping><description><![CDATA[<a href="http://www.notonlysuccess.com/">notonlysuccess</a><br><br><br>这个博客不用了，一些还好的资料会慢慢搬到新博客<br>谢谢朋友们继续关注<br><br>  <img src ="http://www.cppblog.com/notonlysuccess/aggbug/101134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-11-16 19:45 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/11/16/101134.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>时限一小时</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/09/10/95805.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Thu, 10 Sep 2009 07:13:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/09/10/95805.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/95805.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/09/10/95805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/95805.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/95805.html</trackback:ping><description><![CDATA[Elevator<br>http://acm.hdu.edu.cn/showproblem.php?pid=2494<br><br>Elevator Simulation<br>http://acm.hdu.edu.cn/showproblem.php?pid=1386<br><br>Tetris<br>http://acm.hdu.edu.cn/showproblem.php?pid=3013<br><br>Gates of Logic<br>http://acm.hdu.edu.cn/showproblem.php?pid=1886<br><br>Teacher YYF<br>http://acm.pku.edu.cn/JudgeOnline/problem?id=3746<br><br>中国象棋II<br>http://acm.fzu.edu.cn/problem.php?pid=1694<br><br>Typesetting<br>http://acm.hdu.edu.cn/showproblem.php?pid=2718<br><br>Connect<br>http://acm.hdu.edu.cn/showproblem.php?pid=2727<br><br>Hex Tile Equations<br>http://acm.hdu.edu.cn/showproblem.php?pid=2702<br><br>HTML Wrapper<br>http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=4083<br><img src ="http://www.cppblog.com/notonlysuccess/aggbug/95805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-09-10 15:13 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/09/10/95805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Asia Regional Contest</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/08/19/93817.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Wed, 19 Aug 2009 05:35:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/08/19/93817.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/93817.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/08/19/93817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/93817.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/93817.html</trackback:ping><description><![CDATA[暂无<br><img src ="http://www.cppblog.com/notonlysuccess/aggbug/93817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-08-19 13:35 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/08/19/93817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PKU——DP专辑</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/07/29/91589.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Wed, 29 Jul 2009 07:18:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/07/29/91589.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/91589.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/07/29/91589.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/91589.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/91589.html</trackback:ping><description><![CDATA[1037 A decorative fence<br>1042 Gone Fishing<br>1062 昂贵的聘礼<br>1074 Parallel Expectations<br>1093 Formatting Text<br>1112 Team Them Up!<br>1143 Number Game<br>1160 Post Office<br>1178 Camelot<br>1179 Polygon<br>1180 Batch Scheduling<br>1187 陨石的秘密<br>1189 钉子和小球<br>1191 棋盘分割<br>1192 最优连通子集<br>1208 The Blocks Problem<br>1239 Increasing Sequences<br>1240 Pre-Post-erous!<br>1293 Duty Free Shop<br>1322 Chocolate<br>1390 Blocks<br>1414 Life Line<br>1432 Decoding Morse Sequences<br>1475 Pushing Boxes<br>1485 Fast Food<br>1505 Copying Books<br>1513 Scheduling Lectures<br>1609 Tiling Up Blocks<br>1633 Gladiators<br>1635 Subway tree systems<br>1636 Prison rearrangement<br>1644 To Bet or Not To Bet<br>1649 Market Place<br>1655 Balancing Act<br>1661 Help Jimmy<br>1664 放苹果<br>1671 Rhyme Schemes<br>1682 Clans on the Three Gorges<br>1690 (Your)((Term)((Project)))<br>1692 Crossed Matchings<br>1695 Magazine Delivery<br>1699 Best Sequence<br>1704 Georgia and Bob<br>1707 Sum of powers<br>1712 Flying Stars<br>1714 The Cave<br>1717 Dominoes<br>1718 River Crossing<br>1722 SUBTRACT<br>1726 Tango Tango Insurrection<br>1732 Phone numbers<br>1733 Parity game<br>1737 Connected Graph<br>1740 A New Stone Game<br>1742 Coins<br>1745 Divisibility<br>1770 Special Experiment<br>1771 Elevator Stopping Plan<br>1776 Task Sequences<br>1821 Fence<br>1837 Balance<br>1848 Tree<br>1850 Code<br>1853 Cat<br>1874 Trade on Verweggistan<br>1889 Package Pricing<br>1920 Towers of Hanoi<br>1926 Pollution<br>1934 Trip<br>1936 All in All<br>1937 Balanced Food<br>1946 Cow Cycling<br>1947 Rebuilding Roads<br>1949 Chores<br>1952 BUY LOW, BUY LOWER<br>1958 Strange Towers of Hanoi<br>1959 Darts<br>1962 Corporative Network<br>1975 Median Weight Bead<br>1989 The Cow Lineup<br>2018 Best Cow Fences<br>2019 Cornfields<br>2029 Get Many Persimmon Trees<br>2033 Alphacode<br>2047 Concert Hall Scheduling<br>2063 Investment<br>2081 Recaman's Sequence<br>2082 Terrible Sets<br>2084 Game of Connections<br>2127 Greatest Common Increasing Subsequence<br>2138 Travel Games<br>2151 Check the difficulty of problems<br>2152 Fire<br>2161 Chandelier<br>2176 Folding<br>2178 Heroes Of Might And Magic<br>2181 Jumping Cows<br>2184 Cow Exhibition<br>2193 Lenny's Lucky Lotto Lists<br>2231 Moo Volume<br>2279 Mr. Young's Picture Permutations<br>2287 Tian Ji -- The Horse Racing<br>2292 Optimal Keypad<br>2329 Nearest number - 2<br>2336 Ferry Loading II<br>2346 Lucky tickets<br>2353 Ministry<br>2355 Railway tickets<br>2356 Find a multiple<br>2374 Fence Obstacle Course<br>2378 Tree Cutting<br>2384 Harder Sokoban Problem<br>2392 Space Elevator<br>暴力三层循环<br>2397 Spiderman<br>2414 Phylogenetic Trees Inherited<br>2424 Flo's Restaurant<br>2430 Lazy Cows<br>2915 Zuma<br>3017 Cut the Sequence<br>3028 Shoot-out<br>3124 The Bookcase<br>3176 Cow Bowling<br>3133 Manhattan Wiring<br>3345 Bribing FIPA<br>3375 Network Connection<br><br>
<br> <img src ="http://www.cppblog.com/notonlysuccess/aggbug/91589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-07-29 15:18 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/07/29/91589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>状态DP~</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/07/12/89874.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Sun, 12 Jul 2009 08:40:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/07/12/89874.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/89874.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/07/12/89874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/89874.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/89874.html</trackback:ping><description><![CDATA[<a href="http://acm.sgu.ru/problem.php?contest=0&amp;problem=222">http://acm.sgu.ru/problem.php?contest=0&amp;problem=222</a><br>这是入门题，数据较大，需要记忆化搜索<br><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1321">http://acm.pku.edu.cn/JudgeOnline/problem?id=1321</a><br>上题的提高版，不过数据超小，爆搜都能过<br><br><a href="http://acm.sgu.ru/problem.php?contest=0&amp;problem=223">http://acm.sgu.ru/problem.php?contest=0&amp;problem=223</a><br>先要预处理出一行中的全部可行状态~<br>然后DP的时候巧妙的运用位运算进行状态的判断和转移<br>状态dp中位运算的巧妙运用会大幅度提高程序的效率和帅气程度<br><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1185">http://acm.pku.edu.cn/JudgeOnline/problem?id=1185</a><br>非常经典的状态DP，由于攻击范围是两格，所以要保持两个状态，有人用三进制压缩，我觉得太烦了(不能使用飘逸的位运算）<br>但是[101][2^10][2^10]得状态太大，考虑到2^10中有很多情况是不可到达的<br>计算下当m=10的时候最多60个合法状态，所以我开了[101][60][60]的数组记忆化DP过了<br><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2640">http://acm.hdu.edu.cn/showproblem.php?pid=2640</a><br>teddy大牛的题目，和上题差不多，不过不能重叠放，所以处理比上题烦很多<br>同样2^8里有很多不可到达的情况，最多之有13种<br>所以我开[101][13][13]的数组15ms就过了，哈哈<br>这就好像是<span style="color: red;">两次状态压缩</span><br>最近的DP题目感觉到<span style="color: red;">把很多不可到达的状态压缩掉</span>效率会提高超多~也可能让程序从TLE MLE变成AC~<br><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2411">http://acm.pku.edu.cn/JudgeOnline/problem?id=2411</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1400">http://acm.hdu.edu.cn/showproblem.php?pid=1400</a><br>这道其实很简单，先预处理出当前状态s1到下一状态的可能值s2，hash[1&lt;&lt;m,1&lt;&lt;m]记录，m为较小值<br>dp[0][(1&lt;&lt;m)-1] = 1<br>然后经过n*(1&lt;&lt;m)*(1&lt;&lt;m)的循环得出结果dp[n][(1&lt;&lt;m)-1]<br><br><a href="http://acm.sgu.ru/problem.php?contest=0&amp;problem=223">http://acm.sgu.ru/problem.php?contest=0&amp;problem=223</a><br>两种砖块，除了预处理的时候状态多点，有7种分支，其他的都和上一题一样<br>(主意一个状态到另一个状态可能会有多种情况，hash的时候要用++而不是true false)<br><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2280">http://acm.hdu.edu.cn/showproblem.php?pid=2280</a><br>要求用最少的1铺满所有的空格，其中3是没用的(可以用两个5代替)，化简之后使用的方块和上一题一样，一样的预处理后<br>dp求出最少的1<br><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1038">http://acm.pku.edu.cn/JudgeOnline/problem?id=1038</a><br><a  href="http://acm.hdu.edu.cn/showproblem.php?pid=2696">http://acm.hdu.edu.cn/showproblem.php?pid=2696</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2442">http://acm.hdu.edu.cn/showproblem.php?pid=2442</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1755">http://acm.hdu.edu.cn/showproblem.php?pid=1755</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1820">http://acm.hdu.edu.cn/showproblem.php?pid=1820</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1668">http://acm.hdu.edu.cn/showproblem.php?pid=1668</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2518">http://acm.hdu.edu.cn/showproblem.php?pid=2518</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1666">http://acm.hdu.edu.cn/showproblem.php?pid=1666</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1820">http://acm.hdu.edu.cn/showproblem.php?pid=1820</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2315">http://acm.hdu.edu.cn/showproblem.php?pid=2315</a><br>         <img src ="http://www.cppblog.com/notonlysuccess/aggbug/89874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-07-12 16:40 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/07/12/89874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>神奇的舞蹈~~Dancing_Links</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/07/10/89701.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Thu, 09 Jul 2009 17:17:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/07/10/89701.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/89701.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/07/10/89701.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/89701.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/89701.html</trackback:ping><description><![CDATA[整了一天的跳舞链，资料可以在网上搜到<br><a href="http://sqybi.com/works/dlxcn/">http://sqybi.com/works/dlxcn/</a><br>惊讶于它做深搜的时候可以达到如此强劲的剪枝<br>下午的时候不看网上的模板自己写了一个，自认为是比模板少了一个for循环，但是写好后才发现没有模板的启发式搜索的效率，就这样活生生的TLE了，浪费了我好几个小时啊~~%&gt;_&lt;%~~<br>晚上只好写用模板的方法，写了一个后瞬间过了，感觉难度也不过尔尔<br>但这个舞蹈链可是容易解答却很难看出的主，构造舞蹈链还是关键<br>献上我的模板~~<br>最简单的舞蹈链，效率仅比hhanger差，可以跑240MS,不过后来我测出了一些数据的结构，暴力优化到了124MS，哈哈哈(得意一下)~~~<br><a href="http://acm.hust.edu.cn/thanks/problem.php?id=1017">http://acm.hust.edu.cn/thanks/problem.php?id=1017</a><br>(精确覆盖问题)<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;remove(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">c)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;L[R[c]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[c];<br>&nbsp;&nbsp;&nbsp;&nbsp;R[L[c]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[c];<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;D[c];&nbsp;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;c&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;D[i])&nbsp;{<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;R[i];&nbsp;j&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;i&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U[D[j]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;U[j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D[U[j]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;D[j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">S[Col[j]];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;resume(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">c)&nbsp;{<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;U[c];i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;c;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;U[i])&nbsp;{<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;L[i];&nbsp;j&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;i&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">S[Col[j]];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U[D[j]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;D[U[j]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;L[R[c]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;c;<br>&nbsp;&nbsp;&nbsp;&nbsp;R[L[c]]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;c;<br>}<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;dfs()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(R[</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;">0</span><span style="color: #000000;">)&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;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;,&nbsp;j;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx,minnum&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">999999</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[</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;">0</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[i])&nbsp;{<br>&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;">&lt;</span><span style="color: #000000;">&nbsp;minnum)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minnum&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;S[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idx&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;}<br>&nbsp;&nbsp;&nbsp;&nbsp;remove(idx);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;D[idx];&nbsp;i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;idx;&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;D[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[deep</span><span style="color: #000000;">++</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Row[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[i];&nbsp;j&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;i&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;R[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove(Col[j]);<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;">(dfs())&nbsp;{<br>&nbsp;&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: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deep&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[i];&nbsp;j&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;i&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;L[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resume(Col[j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;resume(idx);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>}</span></div>
<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209</a><br>(精确覆盖问题)<br>浙大的这道省赛题其实就是完美覆盖的转化~把每一格都分开来，要求就是选N个方块把图完美覆盖全部搜完然后最小的个数<br>思路：行方块，列单位小格子，矩阵中1是方块所能覆盖的小格子<br><br><a href="http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&amp;method=showdetail&amp;id=1507">http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&amp;method=showdetail&amp;id=1507
</a><br>(重复覆盖问题) 重复覆盖的模板题<br>献上模板<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->void&nbsp;remove(int&nbsp;&amp;c)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;D[c];&nbsp;i&nbsp;!=&nbsp;c&nbsp;;&nbsp;i&nbsp;=&nbsp;D[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L[R[i]]&nbsp;=&nbsp;L[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[L[i]]&nbsp;=&nbsp;R[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>void&nbsp;resume(int&nbsp;&amp;c)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;U[c];&nbsp;i&nbsp;!=&nbsp;c&nbsp;;&nbsp;i&nbsp;=&nbsp;U[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;L[R[i]]&nbsp;=&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[L[i]]&nbsp;=&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br>int&nbsp;h()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;hash[51];<br>&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,false,sizeof(hash));<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ret&nbsp;=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;c&nbsp;=&nbsp;R[0];&nbsp;c&nbsp;!=&nbsp;0&nbsp;;&nbsp;c&nbsp;=&nbsp;R[c])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!hash[c])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[c]&nbsp;=&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;D[c]&nbsp;;&nbsp;i&nbsp;!=&nbsp;c&nbsp;;&nbsp;i&nbsp;=&nbsp;D[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;j&nbsp;=&nbsp;R[i]&nbsp;;&nbsp;j&nbsp;!=&nbsp;i&nbsp;;&nbsp;j&nbsp;=&nbsp;R[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[Col[j]]&nbsp;=&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;<br>}<br>bool&nbsp;dfs(int&nbsp;deep,int&nbsp;lim)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;if(deep&nbsp;+&nbsp;h()&nbsp;&gt;&nbsp;lim)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;if(R[0]&nbsp;==&nbsp;0)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;idx&nbsp;,&nbsp;i&nbsp;,&nbsp;j&nbsp;,&nbsp;minnum&nbsp;=&nbsp;99999;<br>&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;R[0]&nbsp;;&nbsp;i&nbsp;!=&nbsp;0&nbsp;;&nbsp;i&nbsp;=&nbsp;R[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(S[i]&nbsp;&lt;&nbsp;minnum)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;minnum&nbsp;=&nbsp;S[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idx&nbsp;=&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;D[idx];&nbsp;i&nbsp;!=&nbsp;idx;&nbsp;i&nbsp;=&nbsp;D[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j&nbsp;=&nbsp;R[i];&nbsp;j&nbsp;!=&nbsp;i&nbsp;;&nbsp;j&nbsp;=&nbsp;R[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remove(j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dfs(deep+1,lim))&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j&nbsp;=&nbsp;L[i];&nbsp;j&nbsp;!=&nbsp;i&nbsp;;&nbsp;j&nbsp;=&nbsp;L[j])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resume(j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resume(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;<br>}</div>
<br><a href="http://acm.tju.edu.cn/acm/showp3219.html" target="_blank" onclick="return checkurl(this)" id="url_4">http://acm.tju.edu.cn/acm/showp3219.html</a> <br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2295">http://acm.hdu.edu.cn/showproblem.php?pid=2295</a><br>(重复覆盖问题)<br>这题无法转化成完美覆盖，所以remove和resume的时候要变化一下，但是这样还是会超时我看了标程才算AC。唉。。<br>主要是里边的一个A*的h函数是在是太犀利了，一下从TLE到了46MS。。。。剪枝还是非常重要的<br>思路：行是雷达，列是城市，矩阵中1是雷达覆盖城市<br><br><a href="http://acm.fzu.edu.cn/problem.php?pid=1686" target="_blank" onclick="return checkurl(this)" id="url_8">http://acm.fzu.edu.cn/problem.php?pid=1686</a> <br>(重复覆盖问题)<br>这道题也同上道一样是："在0-1矩阵中选取最少的行，使得每一列最少有一个1" 这个模型<br>所以和上一道建表一样建好之后套上模板就AC了~<br>思路：行是枚举在每个位子放魔法，列式怪物个数(最好给怪物标记个id)，矩阵中的1是在这个地方放魔法是否能达到目标怪物<br><br><a style="color: #2000ff; text-decoration: underline;" href="http://www.spoj.pl/problems/NQUEEN/">http://www.spoj.pl/problems/NQUEEN/</a><br>(重复覆盖问题)<br>N皇后问题，打的时候没能想到怎么转化成精确覆盖，只是用了dancing links的思想，傻傻的花了一个晚上完成了一个超级复杂的米字型链表(重复覆盖)，开始的时候启发式函数S没有更新，导致没有发挥效用，结果本例30个0的数据都跑不出来，还以为是想法出错了，睡觉前在床上想到，改了一下，效率呈指数级增长，50个0的瞬间跑出来，在state里排到第一，哈哈<br><br>(精确覆盖问题)<br>今天CH教我怎么将之转化成十字链表的精确覆盖，但是矩阵是(n*n)*(6*n-2)比米字型链表n*n的大了好多倍，交了一下，跑了1s，效率不如米字型的<br>其思路是：行是格子数n*n,列是(行+列+正逆对角线)，矩阵中的1是放在各自上所占得行，列，对角线<br>不需要全部搜完，只要初始皇后+dfs的深度达到n(放了n个皇后)就return true<br><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2828">http://acm.hdu.edu.cn/showproblem.php?pid=2828
</a><br>(精确覆盖问题)
<br>这题恶化N皇后一样可以转化成多种覆盖。我是精确覆盖，列是n+m只要精确前n个就够了<br>(重复覆盖问题)
<br>还可以转化成不精确，那么列就是n<br><br>当然，此题出题人的意图是二分匹配。。。<br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=31">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=31</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1084">http://acm.pku.edu.cn/JudgeOnline/problem?id=1084</a><br>(重复覆盖问题)<br>这题要不和我说是dancing links 我还真看不出来<br>此题建表超烦，虽看出来但是建表就花了我一个半小时，还迫我使用上行的头节点，以前我只是用列的头节点，努力了很久，过了sample就AC了，烦就烦在建表上<br>思路：行是火柴棒数，列是完美时能构成的矩阵数目，矩阵中的1是列矩阵是否包含行火柴<br><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3074">http://acm.pku.edu.cn/JudgeOnline/problem?id=3074</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3074">http://acm.pku.edu.cn/JudgeOnline/problem?id=3076</a><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3038">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3038</a><br>(精确覆盖问题)<br>经典的数独，看了论文才明白怎么覆盖，9*9*9的行 (9+9+9)*9+9*9的列<br>思路：行是81个小格*每个格子的9个可能数字，列是81个小格+9行9列9小块的9个数字<br>每列确切的有4个1<br>开始读入的时候吧确定的数字的头上的1删掉可以很大的提高效率<br><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2518">http://acm.hdu.edu.cn/showproblem.php?pid=2518
</a><br>超爽的dancing links<br>这题所有的方块可以旋转，这点超烦~<br>我差点就人肉代码了，枚举所有状态，不过最后我还是修改成不人肉的办法<br>只有几组答案，用dancing links暴力跑出所有组合后然后打表，嘿嘿，我就是这么猥琐的过的<br>72*所有摆放数~<br>思路：60个格子加12个方块作为列，所有摆放的方案数作为行<br><br><br>好了，A光上述题目dancing links的学习也告一段落，这个舞蹈是在是优美，以后出题一定要谱一曲经典的舞蹈~~<br><br><br><br>2009.9.6<br>发现dancing links还能做<span style="color: red;">最大团</span><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1530">http://acm.hdu.edu.cn/showproblem.php?pid=1530</a><br>转化成补图后再建表。。。不过效率很低，跑了6000+MS，全部搜完找一个最大的，还没有更优的办法优化，尝试过二分再写个h函数未果。。。<br><br>10.15<br><a  href="http://acm.hdu.edu.cn/showproblem.php?pid=3156">http://acm.hdu.edu.cn/showproblem.php?pid=3156</a><br>和雷达类似，不过放radar的点要求出来，也是先二分枚举半径，然后利用两个点和半径确定一个圆心C(n,2)，可以证明如果放其他地方一定没这个圆心优<br>         <img src ="http://www.cppblog.com/notonlysuccess/aggbug/89701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-07-10 01:17 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/07/10/89701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hdu1055 &amp; PKU2054------DP+可以任意取出节点的二叉堆</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/06/29/88793.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Mon, 29 Jun 2009 08:30:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/06/29/88793.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/88793.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/06/29/88793.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/88793.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/88793.html</trackback:ping><description><![CDATA[<a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2054">http://acm.pku.edu.cn/JudgeOnline/problem?id=2054 </a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1055">http://acm.hdu.edu.cn/showproblem.php?pid=1055
</a><br>好点经典的一道题目，做了半天都做不出来<br>后来到网上看了解题报告才明白（解题报告网上有，我就不再出说明了）是n^2的算法<br>我在想，每次都遍历一遍找最大权值的点会不会太浪费时间，如果用堆取出权值最大的点效率就会有很大改进，变成n*log(n)了<br>但是最大权值的父亲节点也要从堆中取出，这有点麻烦<br>结合昨天ZOJ月赛比赛中自创的<span style="color: red;">可以取出任意节点的二叉堆</span>，记录位子来实现，想到了方法，多方试验之后果然成功了<br>在PKU提交也只用了16MS...哈哈<br>贴出来晒晒
<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">string</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;maxn&nbsp;1001</span><span style="color: #000000;"><br></span><span style="color: #008000;">//</span><span style="color: #008000;">-----------------------Binary&nbsp;Heap------------------------------------</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Heap&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;val,cost,time,idx;<br>}hh[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;pos[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;len;<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;Prior(Heap&nbsp;a,Heap&nbsp;b)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a.val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;b.time&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;b.val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;a.time;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Push(Heap&nbsp;s)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">len&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;Prior(s,hh[i</span><span style="color: #000000;">/</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;</span><span style="color: #000000;">2</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[i</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;pos[hh[i].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s;<br>&nbsp;&nbsp;&nbsp;&nbsp;pos[hh[i].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>}<br>Heap&nbsp;Pop(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(idx&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;hh[</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[idx];<br>&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;last&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[len</span><span style="color: #000000;">--</span><span style="color: #000000;">];<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,s;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;idx&nbsp;;&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;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;len;&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&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;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(s&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;Prior(hh[s</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">],hh[s]))&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;</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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(Prior(hh[s],last))&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[s];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos[hh[i].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;last;<br>&nbsp;&nbsp;&nbsp;&nbsp;pos[hh[i].idx]&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;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;idx&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;Prior(hh[i],hh[i</span><span style="color: #000000;">/</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;</span><span style="color: #000000;">2</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[i</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;hh[i</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;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos[hh[i].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos[hh[i</span><span style="color: #000000;">/</span><span style="color: #000000;">2</span><span style="color: #000000;">].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">/</span><span style="color: #000000;">2</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;ret;<br>}<br></span><span style="color: #008000;">//</span><span style="color: #008000;">---------------------------------------------------------------</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;father[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,r,i;<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[</span><span style="color: #000000;">0</span><span style="color: #000000;">].cost&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[</span><span style="color: #000000;">0</span><span style="color: #000000;">].time&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[</span><span style="color: #000000;">0</span><span style="color: #000000;">].val&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%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">r),n</span><span style="color: #000000;">+</span><span style="color: #000000;">r)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;root;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">buf.cost);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.val&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf.cost;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.time&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;&nbsp;buf.idx&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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;r)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf;<br>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push(buf);<br>&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;">for</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[b]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(len)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;max&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Pop(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;f&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;father[max.idx];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(f&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;r)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root.cost&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.cost&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;max.val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;root.time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root.time&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root.val&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.val;&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;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Heap&nbsp;fa&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Pop(pos[f]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fa.cost&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.cost&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;max.val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;fa.time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fa.time&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fa.val&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;max.val;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fa.idx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;f;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Push(fa);<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;pos[max.idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;">,root.cost);<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>
<br>下边是n^2的算法，跑了200+MS。。简洁是简洁，但效率不高<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">string</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;maxn&nbsp;1001</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;H{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;val;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cost;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;time;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;clear()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;val&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;cost&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;time&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;}<br>}hh[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;father[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,r,i;<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%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">r),n</span><span style="color: #000000;">+</span><span style="color: #000000;">r)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">hh[i].cost);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[i].val&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;hh[i].cost;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[i].time&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;">(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;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father[b]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">)&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;idx&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;</span><span style="color: #0000ff;">for</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;r&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;hh[i].time&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;(idx&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;">||</span><span style="color: #000000;">&nbsp;hh[idx].val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;hh[i].time&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;hh[i].val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;hh[idx].time))&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idx&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;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(idx&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&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;</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;father[idx];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[f].cost&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;hh[idx].cost&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;hh[idx].val&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;hh[f].time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[f].val&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;hh[idx].val;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[f].time&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;hh[idx].time;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[idx].clear();<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\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,hh[r].cost);<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>
<br><br>    <img src ="http://www.cppblog.com/notonlysuccess/aggbug/88793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-06-29 16:30 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/06/29/88793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>概率题总汇</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/19/83367.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Tue, 19 May 2009 05:48:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/19/83367.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/83367.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/19/83367.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/83367.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/83367.html</trackback:ping><description><![CDATA[以前就见过不少求期望的题，题意很直白，但是却一直少不到思路做题<br>今天lcy老师推荐我看了zjut一位大牛的文章<br><a href="http://bbs.zjut.com/viewthread.php?tid=1170233&amp;extra=page%3D1">http://bbs.zjut.com/viewthread.php?tid=1170233&amp;extra=page%3D1</a><br>终于略知一二了，找几道概率题做做<br><br><br><a href="http://acm.hdu.edu.cn/search.php?field=problem&amp;key=2262">http://acm.hdu.edu.cn/search.php?field=problem&amp;key=2262</a><br>E(now) = （E(NEXT1) + E(NEXT2) +...+E(NEXTn))/n + 1<br>每个相邻点建方程，注意起点可以走到得边才能建方程，不然会导致无解<br>先floodfill找到起点可以走到得点，然后建方程，最后仍个高斯消元模板解把答案解出来<br><br><a href="http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1423">http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1423</a><br>同上一道一摸一样的题<br><br><a href="http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1317">http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1317</a><br>这个需要构造，相隔位子数的转换<br>想在相邻n，都向内飞的话n-2，都想外飞n+2，一个向左一个向右的话就保持n不变，所以有下列方程<br>E[n] = E[n+2]/4 + E[n-2]/4 + E[n]/2 + 1<br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2619">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2619</a><br>此题极度郁闷，转移方程已经推出来了，却因为精度问题过不了<br>第四个sample我试了三个模板，出来的答案都不一样。。。。。<br>用java可过<br><a  href="http://acm.hdu.edu.cn/showproblem.php?pid=3058">http://acm.hdu.edu.cn/showproblem.php?pid=3058</a><br>上体升级版，变成了多串匹配，建Tire图的基础上进行转移<br>一样存在精度问题，用java可过<br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2837">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2837</a><br>因为电梯有上有下，我索性就把楼的高度加倍&nbsp; n = n * 2 - 2<br>那sample来说，0~10是向上的，10~20是向下的，20就是0，向上的话又变成1开始<br>在第7和第13层会碰到鬼(我从0层开始，所以每个量都要-1)<br>这样就可以得到转移方程<br>E[i] = E[(i+j)%n]/6 + 1<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;m&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;n</span><span style="color: #000000;">-</span><span style="color: #000000;">m)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat[i][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;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat[i][i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat[i][n]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(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;j&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">;&nbsp;j&nbsp;</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;&nbsp;&nbsp;mat[i][(i</span><span style="color: #000000;">+</span><span style="color: #000000;">j)</span><span style="color: #000000;">%</span><span style="color: #000000;">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;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<a href="http://acm.hdu.edu.cn/showproblem.php?pid=1204">http://acm.hdu.edu.cn/showproblem.php?pid=1204
</a><br>这题很早就开始想了，现在才会做，公式如下：<br>a = p * (1 - q);<br>b = q * (1 - p);<br>E[n] = E[n-1] *　a + E[n+1] * b + E[n] * (1 - a - b);<br>E[0] = 0;<br>E[N+M] = 1;<br><br><br>这两道AC的代码都超短，应该是公式题。。没上边几道那么有意思。。。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2949">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2949</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3682">http://acm.pku.edu.cn/JudgeOnline/problem?id=3682</a><br><br><br>献上第一次写的高斯消元模板<br>若返回时false则无解<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008000;">/*</span><span style="color: #008000;">*************************************************<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;mat里建好方程,增广矩阵&nbsp;&nbsp;&nbsp;&nbsp;n*(n+1)<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;传入方程个数<br>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;答案保存在mat[i][i]中<br>*************************************************</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">string</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;ab(a)&nbsp;(((a)&gt;0)?(a):(-a))</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;maxn&nbsp;100</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;eps&nbsp;1e-10</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;mat[maxn][maxn];<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;swap(</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b)&nbsp;{</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;t&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a;a&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;b;b&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;t;}<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;Gauss(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,row,idx;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">double</span><span style="color: #000000;">&nbsp;maxx,buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(row&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;row&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;row&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(maxx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">row&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(ab(mat[i][row])&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;maxx)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;ab(mat[i][row]),idx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(maxx&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;eps)</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(idx&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;row)&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;j&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;swap(mat[row][j],mat[idx][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;row&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;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(buf</span><span style="color: #000000;">=</span><span style="color: #000000;">mat[i][row]</span><span style="color: #000000;">/</span><span style="color: #000000;">mat[row][row],j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;row;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;j&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;mat[i][j]&nbsp;</span><span style="color: #000000;">-=</span><span style="color: #000000;">&nbsp;buf&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;mat[row][j];<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;n</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">;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;i&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat[i][n]&nbsp;</span><span style="color: #000000;">-=</span><span style="color: #000000;">&nbsp;mat[i][j]</span><span style="color: #000000;">*</span><span style="color: #000000;">mat[j][j];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mat[i][i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;mat[i][n]</span><span style="color: #000000;">/</span><span style="color: #000000;">mat[i][i];<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: #0000ff;">true</span><span style="color: #000000;">;<br>}</span></div>
<br>    <img src ="http://www.cppblog.com/notonlysuccess/aggbug/83367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-19 13:48 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/19/83367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>强连通。。。。</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/17/83205.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Sun, 17 May 2009 12:36:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/17/83205.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/83205.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/17/83205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/83205.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/83205.html</trackback:ping><description><![CDATA[很好玩的算法<br>强连通+缩点可以把一块点看成一个点，大大加快算法。还有一些无法解决的问题也可以用这个来解决<br>前几天在林学院做题的时候胡搞搞出来了，哈哈<br>今天又A了一道<br>最近对图对树越来越有感觉了<br><br>http://acm.hdu.edu.cn/showproblem.php?pid=2767<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">"</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;maxn&nbsp;20001</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Node&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;to;<br>&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;next;<br>}list[maxn],opp[maxn];<br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;SCC{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;time;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;newid;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx;<br>}hh[maxn];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;time,newid;<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;flag;<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;hash[maxn];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;hashid[maxn];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;gashid[maxn];<br></span><span style="color: #008000;">//</span><span style="color: #008000;">--------------------------------------------</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dfs(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;list[idx].next;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(buf)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(time&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">7</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">7</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[idx].time&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;time&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[idx].idx&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;idx;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dfs2(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;opp[idx].next;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(buf)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs2(buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;hh[idx].newid&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;newid;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dfs3(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;list[idx].next;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(buf)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(hh[idx].newid&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;hh[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to].newid)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hashid[hh[idx].newid]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gashid[hh[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to].newid]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</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;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs3(buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;cmp(SCC&nbsp;a,SCC&nbsp;b)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a.time&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;b.time;<br>}<br></span><span style="color: #008000;">//</span><span style="color: #008000;">-----------------------------------------</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,i,a,b,m,T;<br>&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">T);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(T</span><span style="color: #000000;">--</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">m);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[i].next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opp[i].next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;NULL;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(m&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(Node));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">正图</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;list[a].next;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list[a].next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Node&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(Node));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">反图</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">to&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;opp[b].next;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opp[b].next&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;buf;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">bool</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;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time&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;</span><span style="color: #0000ff;">for</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><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;">先确定时间戳</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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(i);<br>&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;sort(hh</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">,hh</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">+</span><span style="color: #000000;">n,cmp);&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;">按时间戳排序</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">bool</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;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newid&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;</span><span style="color: #0000ff;">for</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;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><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;">把点分成几块</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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[hh[i].idx])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[hh[i].idx]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hh[hh[i].idx].newid&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">newid;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs2(hh[i].idx);<br>&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;">(newid&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;puts(</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">continue</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">bool</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;">));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hashid,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">(newid</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;memset(gashid,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">)</span><span style="color: #000000;">*</span><span style="color: #000000;">(newid</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;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</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;</span><span style="color: #008000;">//</span><span style="color: #008000;">找出块的出度入度</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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs3(i);<br>&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;">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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;cnt1&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;</span><span style="color: #0000ff;">for</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;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;newid&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hashid[i])<br>&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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">gashid[i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cnt1&nbsp;</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;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,cnt</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">cnt1</span><span style="color: #000000;">?</span><span style="color: #000000;">cnt:cnt1);<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>
<br><br> <img src ="http://www.cppblog.com/notonlysuccess/aggbug/83205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-17 20:36 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/17/83205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>又学了一招，随机化法，用于比赛时候是在没办法的时候的流氓剪枝</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/15/83026.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Fri, 15 May 2009 02:01:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/15/83026.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/83026.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/15/83026.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/83026.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/83026.html</trackback:ping><description><![CDATA[<img  src="http://www.cppblog.com/images/cppblog_com/notonlysuccess/xxx.jpg" border="0"><br><br><br>不同时刻提交不限不同的结果。。。。学习了。哈哈<br>比赛时候是在没有办法的时候又多了一招<br>付代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">algorithm</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">time.h</span><span style="color: #000000;">"</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,hash[</span><span style="color: #000000;">25</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;A[</span><span style="color: #000000;">25</span><span style="color: #000000;">][</span><span style="color: #000000;">25</span><span style="color: #000000;">];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;res,maxdeep;<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;fun()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;sum&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;">int</span><span style="color: #000000;">&nbsp;a[</span><span style="color: #000000;">25</span><span style="color: #000000;">],b[</span><span style="color: #000000;">25</span><span style="color: #000000;">],la&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">,lb&nbsp;</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;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(hash[i])&nbsp;&nbsp;&nbsp;&nbsp;a[la</span><span style="color: #000000;">++</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;b[lb</span><span style="color: #000000;">++</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<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;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;la;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<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;">0</span><span style="color: #000000;">&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;lb;&nbsp;j&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&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;A[a[i]][b[j]];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(sum&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;res)&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;sum;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dfs(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;deep,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;start)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(deep&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;maxdeep)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fun();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<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;">start;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">hash[i])&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[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;&nbsp;&nbsp;&nbsp;&nbsp;dfs(deep</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[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;}<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<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)&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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">&nbsp;;&nbsp;j&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;j&nbsp;</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;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[i][j]);<br>&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;res&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;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(n&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">19</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxdeep&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;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(hash));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(maxdeep)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(</span><span style="color: #000000;">0</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;maxdeep&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&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;cnt&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100000</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;srand(time(NULL));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(hash,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(hash));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(cnt&nbsp;</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;hash[rand()</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;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fun();<br>&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.\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,res);<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>
<br><img src ="http://www.cppblog.com/notonlysuccess/aggbug/83026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-15 10:01 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/15/83026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>树形DP</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/11/82614.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Mon, 11 May 2009 12:39:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/11/82614.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/82614.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/11/82614.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/82614.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/82614.html</trackback:ping><description><![CDATA[<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2196">http://acm.hdu.edu.cn/showproblem.php?pid=2196</a><br>向下搜一遍，向上搜一遍<br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1561">http://acm.hdu.edu.cn/showproblem.php?pid=1561
</a><br>对每一个节点进行一次背包，好题啊，两个DP树形和背包结合的<br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1011">http://acm.hdu.edu.cn/showproblem.php?pid=1011</a><br>这道是当年省赛的压轴题，但是感觉和上一道差不多，一样的难度，唯一不同的就是这个是无向图(我由于思维惯性拿来当单向图作，纠结了好久。。。) <br>树形+背包+临街表<br><br>下边是从天涯空间里找出来的练习<br><span style="line-height: 1.8em; font-size: 13px;"><span style="line-height: 1.8em; color: #000000;"> </span><wbr></span><span style="line-height: 1.8em; color: #008000;"><wbr><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3345" target="_blank" eventslistuid="e4"><span style="line-height: 1.8em; font-size: 13px;">http://acm.pku.edu.cn/JudgeOnline/problem?id=3345</span></a><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3107">http://acm.pku.edu.cn/JudgeOnline/problem?id=3107</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1655">http://acm.pku.edu.cn/JudgeOnline/problem?id=1655</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2378">http://acm.pku.edu.cn/JudgeOnline/problem?id=2378</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=3140">http://acm.pku.edu.cn/JudgeOnline/problem?id=3140</a><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=2242">http://acm.hdu.edu.cn/showproblem.php?pid=2242</a><br><a href="http://acm.timus.ru/problem.aspx?space=1&amp;num=1018">http://acm.timus.ru/problem.aspx?space=1&amp;num=1018</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1947">http://acm.pku.edu.cn/JudgeOnline/problem?id=1947</a><br><a></a><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2057">http://acm.pku.edu.cn/JudgeOnline/problem?id=2057</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2486">http://acm.pku.edu.cn/JudgeOnline/problem?id=2486</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1848">http://acm.pku.edu.cn/JudgeOnline/problem?id=1848</a><br><a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=2152">http://acm.pku.edu.cn/JudgeOnline/problem?id=2152</a><br></span><br><br><br><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1520">http://acm.hdu.edu.cn/showproblem.php?pid=1520</a><br>(第一个树形DP，附代码)<br>最最简单的树形DP<br>还学习了父子兄弟结构，爽<br><br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Tree{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;father;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;child;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;brother;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;TakeParty;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Not;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;Max()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;TakeParty&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;Not&nbsp;</span><span style="color: #000000;">?</span><span style="color: #000000;">&nbsp;TakeParty&nbsp;:&nbsp;Not;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;init()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;father&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;brother&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;Not&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;}<br>}tree[</span><span style="color: #000000;">6001</span><span style="color: #000000;">];<br><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;dfs(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;idx&nbsp;)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;child;<br>&nbsp;&nbsp;&nbsp;&nbsp;child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tree[idx].child;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(child)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(child);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[idx].TakeParty&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;tree[child].Not;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[idx].Not&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;tree[child].Max();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tree[child].brother;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,i,a,b;<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)&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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">tree[i].TakeParty);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[i].init();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&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%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">a,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">b),a</span><span style="color: #000000;">+</span><span style="color: #000000;">b)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[a].father&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;b;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[a].brother&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;tree[b].child;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree[b].child&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;a;<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;">(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;i&nbsp;</span><span style="color: #000000;">&lt;=</span><span style="color: #000000;">&nbsp;n&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">tree[i].father)&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(i);<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;">,tree[i].Max());<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<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>
<br>      <img src ="http://www.cppblog.com/notonlysuccess/aggbug/82614.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-11 20:39 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/11/82614.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>花了一天时间写的一个很挫很挫的大数模板</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/06/82079.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Wed, 06 May 2009 10:37:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/06/82079.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/82079.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/06/82079.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/82079.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/82079.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这就Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include&nbsp;"iostream"#include&nbsp;"stdio.h"#define&nbsp;Mod&nbsp;10000using&nbsp;namespace&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/notonlysuccess/archive/2009/05/06/82079.html'>阅读全文</a><img src ="http://www.cppblog.com/notonlysuccess/aggbug/82079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-06 18:37 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/06/82079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>浙江省历年省赛题+解析</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/05/02/81723.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Sat, 02 May 2009 13:10:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/05/02/81723.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/81723.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/05/02/81723.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/81723.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/81723.html</trackback:ping><description><![CDATA[<a href="http://acm.zju.edu.cn/onlinejudge/searchProblem.do?contestId=1&amp;titlefrom=0&amp;authorfrom=0&amp;sourcefrom=0&amp;query=provinc">http://acm.zju.edu.cn/onlinejudge/searchProblem.do?contestId=1&amp;titlefrom=0&amp;authorfrom=0&amp;sourcefrom=0&amp;query=provinc</a> <br><span style="FONT-SIZE: 18pt; COLOR: red">会对每一道做过的题做一个简单的分析，如果有出错或者不理解可以于我交流</span><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2104"><font color=blue><u>2104</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2104"><font color=blue><u>Let the Balloon Rise</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>数据很小，遍历一下，找到就++，没有的话就算新的<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2105"><font color=blue><u>2105</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2105"><font color=blue><u>Number Sequence</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>找循环节，开hash[7][7]来找，hash前一个和后一个<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2106"><font color=blue><u>2106</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2106"><font color=blue><u>Tick and Tick</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>当年应该是金牌题吧，时间是连续的，不能一秒一秒分开来计算<br>我是根据题目联立三个不等式方程，然后解出交集<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2107"><font color=blue><u>2107</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2107"><font color=blue><u>Quoit Design</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>最近点对，二分的思想，据说数据结构书上就有。。。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2108"><font color=blue><u>2108</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2108"><font color=blue><u>Elevator</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>简单模拟题，求出上升和下降的层数<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2109"><font color=blue><u>2109</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2109"><font color=blue><u>FatMouse' Trade</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>按性价比排序后贪心<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2110"><font color=blue><u>2110</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2110"><font color=blue><u>Tempter of the Bone</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>深搜，加个奇偶性剪枝<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2111"><font color=blue><u>2111</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2111"><font color=blue><u>Starship Troopers</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2004</font> <br>神题，不会。。。据说是树形DP<br><span style="COLOR: red">5.13补充</span>：当时看着是的做也不敢做的神题，前几天学习了熟悉树形DP后练习了几道题目再来做这题发现一点都不难<br>树形+背包+临街表建图可以轻松A掉此题<br><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2474"><font color=blue><u>2474</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2474"><font color=blue><u>World Goes Round</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>这题数据量好大，n=10，记得在北师大比赛的时候做过一个3*3的八数码也是这样转动规则，当时是预处理直接秒掉的<br>这道状态太大，变身为神题了，不会<br><br>不是求最优解，所以我猜测应该是构造出一种方法让它转到目标状态<br>//我想是不是可以降维，拼好最左边和最上边就可以降一维了。。<br>至于怎么构造没有想出来。。。。<br><font style="FONT-SIZE: 12pt" color=#ff0000 size=5>尚未做出</font> <br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2475"><font color=blue><u>2475</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2475"><font color=blue><u>Benny's Compiler</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>判断有向图成环，用拓扑排序，错了N遍，我都怀疑是不是我的拓扑写错了。。<br>后来试了一下原来有恶心数据，Ai == Bi的时候这样的数据不要计算，不然就自己成环了。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2476"><font color=blue><u>2476</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2476"><font color=blue><u>Total Amount</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>模拟一下，都不用大数加法，直接用long long就够了，输出的时候分段输出<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2477"><font color=blue><u>2477</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2477"><font color=blue><u>Magic Cube</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>题目说不超过5步，可以用迭代加深搜索，其实题目意思很直白，就是这道题目很难模拟。<br>把魔方的转模拟出来这题目也就做出来了。。<br>我把每一种转都计算出来写进表里，然后按照这个表转就OK了<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2478"><font color=blue><u>2478</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2478"><font color=blue><u>Encoding</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font><br>遍历一遍比较当前字符和前一个字符就好<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2479"><font color=blue><u>2479</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2479"><font color=blue><u>Cover the Rectangular Ground</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>从最左下角的点开始dfs，每次先判断能不能放上，然后找出当前最左下角的点再dfs<br>这样很暴力。。最坏的情况算不来，大概有20!次。。。我晕，一直TLE<br>后来我试了下数据，倒是是我的程序真的效率很低，还是只有一些数据都跑不出<br>经过多次WA和TLE的测试发现只要有解得数据我都能跑出来，无解的就直接搜到死了<br>于是我定义如果深搜次数超过100000就直接跳出，无解<br>结果就AC了。。。。效率还很高，由于内存原因拍在第二<br>唉，比赛的时候如果能这样AC的话就太RP了。。。<br>。。求正解。。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2480"><font color=blue><u>2480</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2480"><font color=blue><u>Simplest Task in Windows</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>数据量小，直接水掉，从后往前比较for(i = n- 1; i &gt;= 0 ; i --)，找到符合的跳出，最后输出下标<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2481"><font color=blue><u>2481</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2481"><font color=blue><u>Unique Ascending Array</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2005</font> <br>排序后输出<br><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2736"><font color=blue><u>2736</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2736"><font color=blue><u>Daffodil number</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br>水题<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2737"><font color=blue><u>2737</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2737"><font color=blue><u>Occurrence</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br>题目看清楚后暴力比较久可以<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2738"><font color=blue><u>2738</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2738"><font color=blue><u>The Kth BST</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br>啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊<br>推了一个下午啊。。。。。竟然WA。。。。。极度郁闷。。。。。<br><br>吃饭回来终于AC了。。。。再郁闷，原来是我对BST的理解有误，后来纪哥纠正了，就这样陷入了误区N久。。。。不值得啊。。。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2739"><font color=blue><u>2739</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2739"><font color=blue><u>Color Quantization</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br><font style="FONT-SIZE: 12pt" color=#ff0000 size=5>尚未做出</font><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2740"><font color=blue><u>2740</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2740"><font color=blue><u>Message System</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br>用并查集做，判断是树还是森林还是图<br><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2741"><font color=blue><u>2741</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2741"><font color=blue><u>Offside</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006, Preliminary</font> <br>很脑残的模拟题，我却脑残的错了N编。。。。。<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2742"><font color=blue><u>2742</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2742"><font color=blue><u>Toy Bricks</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br><font color=#ff0000>尚未做出</font><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2743"><font color=blue><u>2743</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2743"><font color=blue><u>Bubble Shooter</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>先foldfill一下，把连起来的hash掉，然后从最上边每个点开始foldfill，看还有几个留下<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2744"><font color=blue><u>2744</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2744"><font color=blue><u>Palindromes</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>从回文串的性质上找规律，每个点向左右延长数回文串个数<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2745"><font color=blue><u>2745</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2745"><font color=blue><u>01-K Code</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>恶心的推推题，我的方法一定不是最简单的，我开了四维数组还转移状态<br>分别存的是：<br>dp[0和1相差几位，最高到达过，最低到达过，n]<br>这是很烂的方法，我想了很久才想出来，实在想不出更好的了<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2746"><font color=blue><u>2746</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2746"><font color=blue><u>Rank the Teams</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br><font style="FONT-SIZE: 12pt" color=#ff0000 size=5>尚未做出</font> <br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2747"><font color=blue><u>2747</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2747"><font color=blue><u>Paint the Wall</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>离散化+hash即可，有点暴力，正解是线段树<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2748"><font color=blue><u>2748</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2748"><font color=blue><u>Free Kick</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>恶心的集合题，开始没有看到straight "WALL"构造出一种最优解，结果WA了<br>改了之后也一直WA，错了无数次后修改了下求夹角的方法，本来有atan，改成acos竟然AC了~~<br>思路：<br>先求出没有wall时候的夹角，然后减去守门员的范围，再根据剩下的角度来求出人数<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2749"><font color=blue><u>2749</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2749"><font color=blue><u>Polarium</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>很好玩的一道题目，有人竟然能TLE 1000+次，而且连续了半年。。Orz一下<br>我跑的比较暴力，效率挺低的<br>思路：<br>首先枚举最后的答案：即每行的黑白情况<br>然后根据这个答案重新画出一张地图，每个能走的点(除了边界点)都只能走且只走一次，然后进行DFS<br>走到终点的时候判断下是否符合条件就AC了(开始的时候我先判断走完点再判断最后一点是否是终点，结果超时了)<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2750"><font color=blue><u>2750</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2750"><font color=blue><u>Idiomatic Phrases Game</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2006</font> <br>构造出最短路，每个串的最先4个和最后4个就是起点和终点，2^16个点，1000条路<br>我用邻接表+堆+bfs加速优化10ms<br><br><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2849"><font color=blue><u>2849</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2849"><font color=blue><u>Attack of Panda Virus</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>按level最小和type最小的优先队列BFS一下<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2850"><font color=blue><u>2850</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2850"><font color=blue><u>Beautiful Meadow</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>水题<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2851"><font color=blue><u>2851</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2851"><font color=blue><u>Code Formatter</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>注意出现在后边的'\t'<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2852"><font color=blue><u>2852</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2852"><font color=blue><u>Deck of Cards</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>DP,三维(每组牌的价值)加滚动数组能轻松AC<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2853"><font color=blue><u>2853</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2853"><font color=blue><u>Evolution</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>矩阵题，有点卡时间<br>我的结构体模板200*200开不下，于是我升级了我的模板，换了一个全局矩阵<br>题目意思理解对套个矩阵模板就能过了<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2854"><font color=blue><u>2854</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2854"><font color=blue><u>Fish and Her Bowl</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br><font style="FONT-SIZE: 12pt" color=#ff0000 size=5>尚未做出</font> <br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2855"><font color=blue><u>2855</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2855"><font color=blue><u>Google Map</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>用所给公式+递归解决<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2856"><font color=blue><u>2856</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2856"><font color=blue><u>Happy Life</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>无论什么状态都一定能构造出可行解的，所以只要while(1)把和小于0的那行变换符号，一直都满足条件<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2857"><font color=blue><u>2857</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2857"><font color=blue><u>Image Transformation</u></font></a> <font color=blue>Zhejiang Provincial Programming Contest 2007</font> <br>水题<br><br><br><br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2965"><font color=blue><u>2965</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2965"><font color=blue><u>Accurately Say "CocaCola"!</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>数据小，暴力下就好，数据大的话可以数学归纳或者暴力看下规律<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2966"><font color=blue><u><br>2966</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2966"><font color=blue><u>Build The Electric System</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>傻傻的最小树<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2967"><font color=blue><u>2967</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2967"><font color=blue><u>Colorful Rainbows</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>正解说是半平面交<br>我是用一个栈，先按b从大到小排序，如果然后遍历一下，能出现的就放进栈里，能把前面的覆盖掉就把栈里的线段拿出<br>正半轴，负半轴做两次，再处理一下小细节就好了<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2968"><font color=blue><u>2968</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2968"><font color=blue><u>Difference Game</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>我先把A数组和B数组的数全部保存C数组里，然后排序<br>再遍历C数组,i = 0 to n*2<br>i左边的为B,右边的为A，然后算出到达这个状态A到B的个数AB和BA<br>根据这两个数算出最小的花费，X =&nbsp; Min(AB,BA)，Y = |AB - BA|，Ci = X * Y* (Y - 1)；<br>如果比c小的话旧更新一下res<br>如果最后一次都没更新到得话就是最后的答案一定是负的<br>所以A和B排序下根据c贪心得到答案<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2969"><font color=blue><u>2969</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2969"><font color=blue><u>Easy Task</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>easy task<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2970"><font color=blue><u><br>2970</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2970"><font color=blue><u>Faster, Higher, Stronger</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>sort<br><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2971"><font color=blue><u>2971</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2971"><font color=blue><u>Give Me the Number</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>模拟下<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2972"><font color=blue><u><br>2972</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2972"><font color=blue><u>Hurdles of 110m</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font> <br>按剩下的能量DP<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2973"><font color=blue><u><br>2973</u></font></a> <a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2973"><font color=blue><u>Intelligent Pouring Robot</u></font></a> <font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest<br><font color=#000000>超烦的模拟题</font><br><font color=#ff0000>尚未做出</font><font color=#000000> </font><br>
<tr class=rowOdd>
    <td class=problemTitle></td>
</tr>
<tr class=rowEven>
    <td class=problemId><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2974"><font color=blue><u>2974</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2974"><font color=blue><u>Just Pour the Water</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font></td>
    <font color=#000000><br>暴力加循环节能过，正解是矩阵，<br>K == 0的时候常常会被忽略，处理一下就好<br>
</tr>
<tr class=rowOdd>
    <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2975"><font color=blue><u>2975</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2975"><font color=blue><u>Kinds of Fuwas</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest</font></td>
    <font color=#000000><br>n^3的算法，枚举任意两行C(2,n)，遍历列n，找到相同的个数x，res+=(x-1)*x/2;<br>
</tr>
<tr class=rowEven>
    <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2976"><font color=blue><u>2976</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2976"><font color=blue><u>Light Bulbs</u></font></a></td>
    <font color=#000000>
    <td class=problemTitle></font><font color=blue>The 5th Zhejiang Provincial Collegiate Programming Contest<br></font><font color=#000000>枚举平面上每一个点取最大值<br></font><br><br>
    <tr class=rowOdd>
        <td class=problemId><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3202"><font color=blue><u>3202</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3202"><font color=blue><u>Second-price Auction</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowEven>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203"><font color=blue><u>3203</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203"><font color=blue><u>Light Bulb</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowOdd>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3204"><font color=blue><u>3204</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3204"><font color=blue><u>Connect them</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowEven>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3205"><font color=blue><u>3205</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3205"><font color=blue><u>Derivative</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowOdd>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3206"><font color=blue><u>3206</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3206"><font color=blue><u>Disaster Area Reconstruction</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000>
    </tr>
    <tr class=rowEven>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3207"><font color=blue><u><br>3207</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3207"><font color=blue><u>80ers' Memory</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000>
    </tr>
    <tr class=rowOdd>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3208"><font color=blue><u><br>3208</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3208"><font color=blue><u>Reforestation</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000>
    </tr>
    <tr class=rowEven>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209"><font color=blue><u><br>3209</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3209"><font color=blue><u>Treasure Map</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowOdd>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3210"><font color=blue><u>3210</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3210"><font color=blue><u>A Stack or A Queue?</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowEven>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3211"><font color=blue><u>3211</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3211"><font color=blue><u>Dream City</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
        <font color=#000000><br>
    </tr>
    <tr class=rowOdd>
        <td class=problemId></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3212"><font color=blue><u>3212</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3212"><font color=blue><u>K-Nice</u></font></a></td>
        <font color=#000000>
        <td class=problemTitle></font><font color=blue>The 6th Zhejiang Provincial Collegiate Programming Contest</font></td>
    </tr>
    </font>
<img src ="http://www.cppblog.com/notonlysuccess/aggbug/81723.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-05-02 21:10 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/05/02/81723.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>二分图的完美匹配</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/21/80606.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Tue, 21 Apr 2009 06:32:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/21/80606.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/80606.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/21/80606.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/80606.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/80606.html</trackback:ping><description><![CDATA[今天学了KM算法，用于二分图的完美匹配，以前就遇到过很多次，但是一直都没有花时间去学<br>学的比较挫，写的是n^4的算法<br>实际上有m*m*n的算法的<br>下边几道是完美匹配的题目<br>http://info.zjfc.edu.cn/acm/problemDetail.aspx?pid=1222
赤裸裸的完美匹配，图都建好了<br>http://acm.hdu.edu.cn/showproblem.php?pid=1533
这个建图很容易<br>http://acm.hdu.edu.cn/showproblem.php?pid=2282
这个需要建图<br><br>下边是http://acm.hdu.edu.cn/showproblem.php?pid=1533
的AC代码<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #808080;">////////////////////////////////////////////////////////////////////////</span><span style="color: #008000;">//</span><span style="color: #808080;"><br></span><span style="color: #008000;">//</span><span style="color: #008000;">二分图的完美匹配，Kuhn－Munkras算法</span><span style="color: #008000;"><br></span><span style="color: #000000;">#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">stdio.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">math.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br>#include</span><span style="color: #000000;">&lt;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;MAXN&nbsp;101</span><span style="color: #000000;"><br></span><span style="color: #808080;">////////////////////////////////////////////////////////////////////////</span><span style="color: #008000;">//</span><span style="color: #808080;"><br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;">&nbsp;inf&nbsp;0x7FFFFFFF</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;edge[MAXN][MAXN];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;match[MAXN];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;hash[MAXN][MAXN];<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;xhash[MAXN],yhash[MAXN];<br></span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;map[MAXN][MAXN];<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;min(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b){</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">b</span><span style="color: #000000;">?</span><span style="color: #000000;">b:a;}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;max(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;a,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;b){</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;a</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">b</span><span style="color: #000000;">?</span><span style="color: #000000;">a:b;}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Scanf(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;m,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">l);<br></span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;dfs(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;p,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n)</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;<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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">yhash[i]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;hash[p][i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yhash[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<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;t&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;match[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(t&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</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;dfs(t,n))<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;match[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;p;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(t&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</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;xhash[t]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;show(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;id,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(id)<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&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,edge[i][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%d&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">,hash[i][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;puts(</span><span style="color: #000000;">""</span><span style="color: #000000;">);<br>}<br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;KM_Perfect_Match(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;xl[MAXN],yl[MAXN];<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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xl[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;yl[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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xl[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;max(xl[i],edge[i][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">bool</span><span style="color: #000000;">&nbsp;perfect&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">perfect)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span><span style="color: #008000;">//</span><span style="color: #008000;">现阶段已经匹配的路</span><span style="color: #008000;"><br></span><span style="color: #000000;">&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;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(xl[i]&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;yl[j]&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;edge[i][j])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hash[i][j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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;hash[i][j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><br></span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show(0,n);</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;memset(match,</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(match));<br>&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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span><span style="color: #008000;">//</span><span style="color: #008000;">当前的图是否能全部匹配</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(xhash,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(xhash));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memset(yhash,</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,</span><span style="color: #0000ff;">sizeof</span><span style="color: #000000;">(yhash));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(dfs(i,n))<br>&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;</span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xhash[i]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(cnt&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;n)</span><span style="color: #008000;">//</span><span style="color: #008000;">没有增广路径</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perfect&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</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;{<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;ex&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;inf;<br>&nbsp;&nbsp;&nbsp;&nbsp;&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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;">for</span><span style="color: #000000;">(j</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;xhash[i]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;j</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;{<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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">yhash[j])<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;ex&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;min(ex,xl[i]&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;yl[j]&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;edge[i][j]);</span><span style="color: #008000;">//</span><span style="color: #008000;">找到一条没建的边的最小值</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;}<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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)</span><span style="color: #008000;">//</span><span style="color: #008000;">根据这个边来进行松弛</span><span style="color: #008000;"><br></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(xhash[i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xl[i]&nbsp;</span><span style="color: #000000;">-=</span><span style="color: #000000;">&nbsp;ex;<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;">(yhash[i])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yl[i]&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;ex;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,m,l;<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%d</span><span style="color: #000000;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">n,</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">m))<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(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;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&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;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanf(n,m,l);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KM_Perfect_Match(l);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;mindis&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;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">l;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mindis&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;edge[match[i]][i];<br>&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;">,</span><span style="color: #000000;">-</span><span style="color: #000000;">mindis);<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><span style="color: #008000;">//</span><span style="color: #008000;">读入建图</span><span style="color: #008000;"><br></span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;Scanf(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;n,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;m,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">l)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;i,j,l1,l2;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;Point{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;x,y;<br>&nbsp;&nbsp;&nbsp;&nbsp;}MAN[MAXN],HOUSE[MAXN];<br>&nbsp;&nbsp;&nbsp;&nbsp;l1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;l2&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;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">n;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="color: #000000;">"</span><span style="color: #000000;">%s</span><span style="color: #000000;">"</span><span style="color: #000000;">,map[i]);<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;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">m;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(map[i][j]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">m</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAN[l1].x&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;&nbsp;&nbsp;&nbsp;&nbsp;MAN[l1].y&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l1&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(map[i][j]</span><span style="color: #000000;">==</span><span style="color: #000000;">'</span><span style="color: #000000;">H</span><span style="color: #000000;">'</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HOUSE[l2].x&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;&nbsp;&nbsp;&nbsp;&nbsp;HOUSE[l2].y&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;l2&nbsp;</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;l&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;l1;<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;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">l;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<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;">0</span><span style="color: #000000;">;j</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">l;j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;edge[i][j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">abs(MAN[i].x&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;HOUSE[j].x)&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;abs(MAN[i].y&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;HOUSE[j].y);<br>}</span></div>
<br> <img src ="http://www.cppblog.com/notonlysuccess/aggbug/80606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-21 14:32 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/21/80606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>又学了一招，矩阵的比较</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/20/80545.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Mon, 20 Apr 2009 07:47:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/20/80545.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/80545.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/20/80545.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/80545.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/80545.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2807昨天比赛这道题目要求矩阵的乘法然后进行比较。。算了一下复杂度是O(n^5)绝对超时。。比赛的时候一直卡着，赛后才知道有一种好的算法--矩阵比较法就是二维的矩阵乘以一个一维的矩阵使之降为一维，然后进行比较这样的话就只用n^2的算法进行矩阵相乘了，复杂度降成了(n^4)顺利AC、。。。#include&lt...&nbsp;&nbsp;<a href='http://www.cppblog.com/notonlysuccess/archive/2009/04/20/80545.html'>阅读全文</a><img src ="http://www.cppblog.com/notonlysuccess/aggbug/80545.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-20 15:47 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/20/80545.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图论~~要大干一场了--Author McFn</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/17/80222.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Fri, 17 Apr 2009 03:10:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/17/80222.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/80222.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/17/80222.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/80222.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/80222.html</trackback:ping><description><![CDATA[<span style="COLOR: #000000">打星号的表示个人认为比较经典，或是算法，构图比较好的题目<br><br></span><span style="COLOR: #000000">1062</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;昂贵的聘礼&nbsp;枚举等级限制</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">dijkstra<br></span><span style="COLOR: #000000">1087</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;A&nbsp;Plug&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;UNIX&nbsp;2分匹配<br></span><span style="COLOR: #000000">1094</span><span style="COLOR: #000000">&nbsp;Sorting&nbsp;It&nbsp;All&nbsp;Out&nbsp;floyd&nbsp;或&nbsp;拓扑<br></span><span style="COLOR: #000000">1112</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Team&nbsp;Them&nbsp;Up</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">&nbsp;2分图染色</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">DP<br></span><span style="COLOR: #000000">1125</span><span style="COLOR: #000000">&nbsp;Stockbroker&nbsp;Grapevine&nbsp;FLOYD<br></span><span style="COLOR: #000000">1135</span><span style="COLOR: #000000">&nbsp;Domino&nbsp;Effect&nbsp;最短路<br></span><span style="COLOR: #000000">1149</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;PIGS&nbsp;网络流<br></span><span style="COLOR: #000000">1161</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Walls&nbsp;floyd<br></span><span style="COLOR: #000000">1201</span><span style="COLOR: #000000">&nbsp;Intervals&nbsp;差分约束<br></span><span style="COLOR: #000000">1236</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Network&nbsp;of&nbsp;Schools&nbsp;强联通<br></span><span style="COLOR: #000000">1251</span><span style="COLOR: #000000">&nbsp;Jungle&nbsp;Roads&nbsp;MST<br></span><span style="COLOR: #000000">1273</span><span style="COLOR: #000000">&nbsp;Drainage&nbsp;Ditches&nbsp;最大流<br></span><span style="COLOR: #000000">1274</span><span style="COLOR: #000000">&nbsp;The&nbsp;Perfect&nbsp;Stall&nbsp;2分匹配<br></span><span style="COLOR: #000000">1275</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Cashier&nbsp;Employment&nbsp;差分约束<br></span><span style="COLOR: #000000">1325</span><span style="COLOR: #000000">&nbsp;Machine&nbsp;Schedule&nbsp;2分匹配(最小点覆盖)<br></span><span style="COLOR: #000000">1364</span><span style="COLOR: #000000">&nbsp;King&nbsp;差分约束<br></span><span style="COLOR: #000000">1422</span><span style="COLOR: #000000">&nbsp;Air&nbsp;Raid&nbsp;2分匹配<br></span><span style="COLOR: #000000">1459</span><span style="COLOR: #000000">&nbsp;Power&nbsp;Network&nbsp;网络流<br></span><span style="COLOR: #000000">1466</span><span style="COLOR: #000000">&nbsp;Girls&nbsp;and&nbsp;Boys&nbsp;2分图(最大独立团)<br></span><span style="COLOR: #000000">1469</span><span style="COLOR: #000000">&nbsp;COURSES&nbsp;2分匹配<br></span><span style="COLOR: #000000">1502</span><span style="COLOR: #000000">&nbsp;MPI&nbsp;Maelstrom&nbsp;floyd<br></span><span style="COLOR: #000000">1511</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Invitation&nbsp;Cards&nbsp;最短路<br></span><span style="COLOR: #000000">1637</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Sightseeing&nbsp;tour&nbsp;混合图欧拉回路</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">网络流<br></span><span style="COLOR: #000000">1716</span><span style="COLOR: #000000">&nbsp;Integer&nbsp;Intervals&nbsp;差分约束<br></span><span style="COLOR: #000000">1724</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;ROADS&nbsp;最短路</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">拆点<br></span><span style="COLOR: #000000">1780</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Code&nbsp;欧拉回路<br></span><span style="COLOR: #000000">1789</span><span style="COLOR: #000000">&nbsp;Truck&nbsp;History&nbsp;最小生成树<br></span><span style="COLOR: #000000">1797</span><span style="COLOR: #000000">&nbsp;Heavy&nbsp;Transportation&nbsp;最小生成树<br></span><span style="COLOR: #000000">1847</span><span style="COLOR: #000000">&nbsp;Tram&nbsp;最短路<br></span><span style="COLOR: #000000">1904</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;King</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Quest&nbsp;强联通</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">1949</span><span style="COLOR: #000000">&nbsp;Chores&nbsp;最短路<br></span><span style="COLOR: #000000">2060</span><span style="COLOR: #000000">&nbsp;Taxi&nbsp;Cab&nbsp;Scheme&nbsp;2分匹配<br></span><span style="COLOR: #000000">2075</span><span style="COLOR: #000000">&nbsp;Tangled&nbsp;</span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000">&nbsp;Cables&nbsp;最小生成树<br></span><span style="COLOR: #000000">2112</span><span style="COLOR: #000000">&nbsp;Optimal&nbsp;Milking&nbsp;网络流<br></span><span style="COLOR: #000000">2125</span><span style="COLOR: #000000">&nbsp;Destroying&nbsp;The&nbsp;Graph&nbsp;最小割<br></span><span style="COLOR: #000000">2135</span><span style="COLOR: #000000">&nbsp;Farm&nbsp;Tour&nbsp;费用流<br></span><span style="COLOR: #000000">2139</span><span style="COLOR: #000000">&nbsp;Six&nbsp;Degrees&nbsp;of&nbsp;Cowvin&nbsp;Bacon&nbsp;floyd<br></span><span style="COLOR: #000000">2226</span><span style="COLOR: #000000">&nbsp;Muddy&nbsp;Fields&nbsp;2分匹配<br></span><span style="COLOR: #000000">2230</span><span style="COLOR: #000000">&nbsp;Watchcow&nbsp;欧拉回路<br></span><span style="COLOR: #000000">2239</span><span style="COLOR: #000000">&nbsp;Selecting&nbsp;Courses&nbsp;2分匹配<br></span><span style="COLOR: #000000">2267</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;From&nbsp;Dusk&nbsp;till&nbsp;Dawn&nbsp;or:&nbsp;Vladimir&nbsp;the&nbsp;Vampire&nbsp;最短路<br></span><span style="COLOR: #000000">2289</span><span style="COLOR: #000000">&nbsp;Jamie</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Contact&nbsp;Groups&nbsp;网络流</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">2337</span><span style="COLOR: #000000">&nbsp;Catenyms&nbsp;欧拉通路<br></span><span style="COLOR: #000000">2349</span><span style="COLOR: #000000">&nbsp;Arctic&nbsp;Network&nbsp;最小生成树<br></span><span style="COLOR: #000000">2369</span><span style="COLOR: #000000">&nbsp;Genealogical&nbsp;tree&nbsp;拓扑序<br></span><span style="COLOR: #000000">2387</span><span style="COLOR: #000000">&nbsp;Til&nbsp;the&nbsp;Cows&nbsp;Come&nbsp;Home&nbsp;最短路<br></span><span style="COLOR: #000000">2391</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Ombrophobic&nbsp;Bovines&nbsp;最大流<br></span><span style="COLOR: #000000">2394</span><span style="COLOR: #000000">&nbsp;Checking&nbsp;an&nbsp;Alibi&nbsp;最短路<br></span><span style="COLOR: #000000">2396</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Budget&nbsp;网络流<br></span><span style="COLOR: #000000">2421</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Constructing&nbsp;Roads&nbsp;最小生成树<br></span><span style="COLOR: #000000">2446</span><span style="COLOR: #000000">&nbsp;Chessboard&nbsp;2分匹配<br></span><span style="COLOR: #000000">2455</span><span style="COLOR: #000000">&nbsp;Secret&nbsp;Milking&nbsp;Machine&nbsp;网络流<br></span><span style="COLOR: #000000">2457</span><span style="COLOR: #000000">&nbsp;Part&nbsp;Acquisition&nbsp;最短路<br></span><span style="COLOR: #000000">2472</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">106</span><span style="COLOR: #000000">&nbsp;miles&nbsp;to&nbsp;Chicago&nbsp;最短路<br></span><span style="COLOR: #000000">2485</span><span style="COLOR: #000000">&nbsp;Highways&nbsp;最小生成树<br></span><span style="COLOR: #000000">2516</span><span style="COLOR: #000000">&nbsp;Minimum&nbsp;Cost&nbsp;费用流<br></span><span style="COLOR: #000000">2536</span><span style="COLOR: #000000">&nbsp;Gopher&nbsp;II&nbsp;2分匹配<br></span><span style="COLOR: #000000">2553</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;The&nbsp;Bottom&nbsp;of&nbsp;a&nbsp;Graph&nbsp;强联通<br></span><span style="COLOR: #000000">2570</span><span style="COLOR: #000000">&nbsp;Fiber&nbsp;Network&nbsp;floyd<br></span><span style="COLOR: #000000">2584</span><span style="COLOR: #000000">&nbsp;T</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">Shirt&nbsp;Gumbo&nbsp;网络流<br></span><span style="COLOR: #000000">2594</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Treasure&nbsp;Exploration&nbsp;2分匹配<br></span><span style="COLOR: #000000">2723</span><span style="COLOR: #000000">&nbsp;Get&nbsp;Luffy&nbsp;Out&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">sat<br></span><span style="COLOR: #000000">2724</span><span style="COLOR: #000000">&nbsp;Purifying&nbsp;Machine&nbsp;2分匹配<br></span><span style="COLOR: #000000">2728</span><span style="COLOR: #000000">&nbsp;Desert&nbsp;King&nbsp;最优比例生成树<br></span><span style="COLOR: #000000">2749</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Building&nbsp;roads&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">sat<br></span><span style="COLOR: #000000">2762</span><span style="COLOR: #000000">&nbsp;Going&nbsp;from&nbsp;u&nbsp;to&nbsp;v&nbsp;or&nbsp;from&nbsp;v&nbsp;to&nbsp;u</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;强联通<br></span><span style="COLOR: #000000">2949</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Word&nbsp;Rings&nbsp;差分约束<br></span><span style="COLOR: #000000">2983</span><span style="COLOR: #000000">&nbsp;Is&nbsp;the&nbsp;Information&nbsp;Reliable</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">&nbsp;差分约束<br></span><span style="COLOR: #000000">2987</span><span style="COLOR: #000000">&nbsp;Firing&nbsp;最小割(求解正确性</span><span style="COLOR: #000000">??</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #000000">3020</span><span style="COLOR: #000000">&nbsp;Antenna&nbsp;Placement&nbsp;2分匹配<br></span><span style="COLOR: #000000">3041</span><span style="COLOR: #000000">&nbsp;Asteroids&nbsp;2分匹配<br></span><span style="COLOR: #000000">3072</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Robot&nbsp;最短路<br></span><span style="COLOR: #000000">3160</span><span style="COLOR: #000000">&nbsp;Father&nbsp;Christmas&nbsp;flymouse&nbsp;强联通<br></span><span style="COLOR: #000000">3164</span><span style="COLOR: #000000">&nbsp;Command&nbsp;Network&nbsp;最小树形图<br></span><span style="COLOR: #000000">3169</span><span style="COLOR: #000000">&nbsp;Layout&nbsp;差分约束<br></span><span style="COLOR: #000000">3177</span><span style="COLOR: #000000">&nbsp;Redundant&nbsp;Paths&nbsp;双联通分量<br></span><span style="COLOR: #000000">3189</span><span style="COLOR: #000000">&nbsp;Steady&nbsp;Cow&nbsp;Assignment&nbsp;网络流<br></span><span style="COLOR: #000000">3204</span><span style="COLOR: #000000">&nbsp;Ikki</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Story&nbsp;I&nbsp;-&nbsp;Road&nbsp;Reconstruction&nbsp;最大流</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3207</span><span style="COLOR: #000000">&nbsp;Ikki</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Story&nbsp;IV&nbsp;-&nbsp;Panda</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Trick&nbsp;2分图<br></span><span style="COLOR: #000000">3216</span><span style="COLOR: #000000">&nbsp;Repairing&nbsp;Company&nbsp;2分匹配<br></span><span style="COLOR: #000000">3228</span><span style="COLOR: #000000">&nbsp;Gold&nbsp;Transportation&nbsp;网络流<br></span><span style="COLOR: #000000">3255</span><span style="COLOR: #000000">&nbsp;Roadblocks&nbsp;最短路<br></span><span style="COLOR: #000000">3259</span><span style="COLOR: #000000">&nbsp;Wormholes&nbsp;最短路<br></span><span style="COLOR: #000000">3268</span><span style="COLOR: #000000">&nbsp;Silver&nbsp;Cow&nbsp;Party&nbsp;最短路<br></span><span style="COLOR: #000000">3275</span><span style="COLOR: #000000">&nbsp;Ranking&nbsp;the&nbsp;Cows&nbsp;floyd<br></span><span style="COLOR: #000000">3281</span><span style="COLOR: #000000">&nbsp;Dining&nbsp;最大流<br></span><span style="COLOR: #000000">3308</span><span style="COLOR: #000000">&nbsp;Paratroopers&nbsp;最小割<br></span><span style="COLOR: #000000">3310</span><span style="COLOR: #000000">&nbsp;Caterpillar<br></span><span style="COLOR: #000000">3311</span><span style="COLOR: #000000">&nbsp;Hie&nbsp;with&nbsp;the&nbsp;Pie&nbsp;floyd<br></span><span style="COLOR: #000000">3328</span><span style="COLOR: #000000">&nbsp;Cliff&nbsp;Climbing&nbsp;最短路<br></span><span style="COLOR: #000000">3343</span><span style="COLOR: #000000">&nbsp;Against&nbsp;Mammoths&nbsp;2分匹配<br></span><span style="COLOR: #000000">3352</span><span style="COLOR: #000000">&nbsp;Road&nbsp;Construction&nbsp;桥<br></span><span style="COLOR: #000000">3439</span><span style="COLOR: #000000">&nbsp;Server&nbsp;Relocation&nbsp;最短路<br></span><span style="COLOR: #000000">3463</span><span style="COLOR: #000000">&nbsp;Sightseeing&nbsp;最短路<br></span><span style="COLOR: #000000">3469</span><span style="COLOR: #000000">&nbsp;Dual&nbsp;Core&nbsp;CPU&nbsp;最小割<br></span><span style="COLOR: #000000">3487</span><span style="COLOR: #000000">&nbsp;The&nbsp;Stable&nbsp;Marriage&nbsp;Problem&nbsp;稳定婚姻<br></span><span style="COLOR: #000000">3522</span><span style="COLOR: #000000">&nbsp;Slim&nbsp;Span&nbsp;最小生成树<br></span><span style="COLOR: #000000">3594</span><span style="COLOR: #000000">&nbsp;Escort&nbsp;of&nbsp;Dr.&nbsp;Who&nbsp;How&nbsp;最短路<br></span><span style="COLOR: #000000">3615</span><span style="COLOR: #000000">&nbsp;Cow&nbsp;Hurdles&nbsp;最短路<br></span><span style="COLOR: #000000">3623</span><span style="COLOR: #000000">&nbsp;Wedding&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">sat<br></span><span style="COLOR: #000000">3653</span><span style="COLOR: #000000">&nbsp;Here&nbsp;We&nbsp;Go(relians)&nbsp;Again&nbsp;最短路<br></span><span style="COLOR: #000000">3659</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Cell&nbsp;Phone&nbsp;Network&nbsp;最小支配集<br></span><span style="COLOR: #000000">3660</span><span style="COLOR: #000000">&nbsp;Cow&nbsp;Contest&nbsp;拓扑<br></span><span style="COLOR: #000000">3662</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Telephone&nbsp;Lines&nbsp;最短路<br></span><span style="COLOR: #000000">3678</span><span style="COLOR: #000000">&nbsp;Katu&nbsp;Puzzle&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">sat<br></span><span style="COLOR: #000000">3683</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;Priest&nbsp;John</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s&nbsp;Busiest&nbsp;Day&nbsp;2-sat求解</span><span style="COLOR: #000000"><br></span><span style="COLOR: #000000">3687</span><span style="COLOR: #000000">&nbsp;Labeling&nbsp;Balls&nbsp;差分约束&nbsp;或&nbsp;拓扑<br></span><span style="COLOR: #000000">3692</span><span style="COLOR: #000000">&nbsp;Kindergarten&nbsp;2分匹配<br></span><span style="COLOR: #000000">3694</span><span style="COLOR: #000000">&nbsp;Network&nbsp;无向图缩点<br><br>就把上面的作为图论学习的题目了</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000"><br></span><br>
<img src ="http://www.cppblog.com/notonlysuccess/aggbug/80222.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-17 11:10 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/17/80222.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>半年AC生涯，仅以此文纪念</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/16/80162.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Thu, 16 Apr 2009 09:08:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/16/80162.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/80162.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/16/80162.html#Feedback</comments><slash:comments>19</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/80162.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/80162.html</trackback:ping><description><![CDATA[834064 </td>
<td>2008-10-16 10:07:01 </td>
<td><font color=red>Accepted </font></td>
<td><a href="http://acm.hdu.edu.cn/showproblem.php?pid=1000"><u><font color=#0000ff>1000</font></u></a>&nbsp;</td>
<td>0MS </td>
<td>0K </td>
<td><a href="http://acm.hdu.edu.cn/viewcode.php?rid=834064" target=_blank><u><font color=#0000ff>105 B</font></u></a>&nbsp;</td>
<td>C </td>
<td class=fixedsize><a href="http://acm.hdu.edu.cn/userstatus.php?user=notonlysuccess"><u><font color=#0000ff>shǎ崽</font></u></a><br><br>去年10月16号，A了第一道A+B,我的AC生涯也正是开始了<br><br>今天是4月16号，正好半年，提交了三道水题。。。在HDU的AC量达到了900.。。<br>
<table style="BORDER-BOTTOM: #1a5cc8 1px dotted" borderColor=#1a5cc8 cellSpacing=2 width="100%" align=center border=0>
    <tbody>
        <tr class=table_text align=middle>
            <td height=22>5</td>
            <td><a href="http://acm.hdu.edu.cn/userstatus.php?user=notonlysuccess"><u><font color=#0000ff>shǎ崽</font></u></a></td>
            <td>A&nbsp;New&nbsp;Start~！</td>
            <td><a href="http://acm.hdu.edu.cn/status.php?user=notonlysuccess&amp;status=5"><font color=#0000ff><u>900</u></font></a></td>
            <td><a href="http://acm.hdu.edu.cn/status.php?user=notonlysuccess"><u><font color=#0000ff>1888</font></u></a></td>
            <td>47.67%</td>
        </tr>
    </tbody>
</table>
<br></td>
本来想向yifenfei大大一般，在纪念日达到1000的AC量<br>可惜力不从心，今日比赛甚多，到在其他OJ上刷题，hdoj上的水题又渐少，烦事缠身，无法完成半年1000的目标~~只好用900来代替一下....XD<br><br>遥想半年前接触ACM后,天天跑机房,机房不开门就网吧,还曾经有一晚在网吧通过宵,第二天集训队的学长们看到我半夜的提交的记录以为我带了笔记本+N块电板，后来知道我是在网吧通宵AC的，更加惊讶，天涯还曾出了一道<a href="http://acm.hdu.edu.cn/showproblem.php?pid=2673"><u><font color=#800080>shǎ崽 OrOrOrOrz</font></u></a>的题目。提到Acmer in HDU-ACM team are ambitious, especially shǎ崽, he can spend time in Internet bar doing problems overnight.哈哈，笑死我了。。这题我特地写了很多优化刷到了第一31MS，哈哈，别人恐怕很难超越了╮(╯_╰)╭<br><br>这个学期开始后lcy教练就常常提醒我要花一段时间去攻克一门算法，从最开始的最小生成数，最短路，到了树状数组，字典树，离散化，这几个星期又有搞定图论的目标，可以说没有lcy教练的督促我进步没有这么明显，毕竟不学算法只刷水题的话是没有提高的。。<br><br>接着就是进队，放弃了一切时间AC，寒假更是没有出去玩过，上个学期都是在自己做题，这个学期就都是在PK，PK比做题好玩多了，能和高手切磋，挑战一些平时不敢做的题目，运气好的话，RP爆发下还能拿到前几的名次炫耀一番。。<br>大大小小经历过了很多场PK，集训队内部的单人PK就有4场，还有几乎每日都有的校外比赛，真是赛事多发期。。上个星期细算一下至少做了7场比赛吧~~这个比赛密度虽然很高，但是人也越比越兴奋~~哈哈↖(^&#969;^)↗<br><br>前几个星期和福州大学的AedkyCion向老师申请出比赛，我从来都没出过，有点小紧张，没想到老师一下就答应了，定在5月2号的老菜鸟杯给我们出，暂定8题，每人四题，到现在我只出了两题半，这进度太慢都有点不好意思了。。。前几天又有福州师范大学要求我们出题，老师把任务交给了我们，亦纷飞，周天涯，纪哥和我，哈哈，我分配到两道模拟题和一道搜索题。。。这个的话5月1号前还有5道题目要出。。可有的好忙了<br>接下来还有期中考试，宁波的全国邀请赛。所以今天晚上我又选择通宵(&#175;﹃&#175;）口水，争取把题目赶出来，还有复习下物理。。话说宁波邀请赛事24~26号，我们的英语和数学考试也在这几天，哈哈，逃过一劫，。。。<br><br>接下来这段忙碌的时期渡过之后，5月又可以开始疯狂的AC了~~前些日子做了<a href="http://ace.delos.com/usacogate">USACO</a>，超级好玩，有点像闯关模式的。过了一些题后开放难度更高的题目和算法给你学习~~昨天刚刚创到第二关，一共有六关，到后边连很多wf的题都出来了，超有挑战，我一定要全部攻克。。<br>遇到这个OJ后我曾经幻想以后能写一个新模式的OJ，其实就是借鉴USACO，升级打怪模式，哈哈，打怪(A完题)得到经验值，可以去买技能书(算法)，然后开放新题目，一级一级来，还有很多附属功能。。。当然这只是初步假想而已。。我现在除了AC什么都不会，更何谈做个新OJ。。不过既然选择了AC，必定会放弃其他很多东西，所以我可以说是背水一战，放弃其他一门心思AC，一定要在这方面拿到一个非常好的成绩才对得起我的大学四年。。。<br><br>队内6轮PK完后终于开始组队选队友了，由于最后一轮RP爆发，被我赚了很多分数，排名一下上升到第二，本是纪哥选我的变成了我选纪哥，哈哈，还选了小丽姐，她可是<a href="http://acm.hdu.edu.cn/forum/read.php?tid=12268&amp;fpage=2">3.8杯</a>后全国闻名的人物哦~~一哥一&#8220;姐&#8221;的组合，虽然我和小丽姐第一次参加省赛，但是我信心十足，跟着曾经拿过银牌的纪哥省赛一定是要冲金夺银的~~PK结束的那个晚上周天涯还和我谈过~~说有机会希望暑假能组队&#183;~啊哈，我真是兴奋至极。。他可是我在队内最希望组队的大牛，进队后就一直钦佩他，现在竟然有机会能在以后一起并肩作战，一起参加全国赛，冲击金牌，参加wf~~哈啊哈~\(≧▽≦)/~（幻想中。。）<br><br>期待接下去的组队PK，省赛，暑假集训，全国赛~~~当然，还有world final ！！ <br><br><br><br>AC之旅中的酸甜苦辣就不再细说了，总是看到很多人说AC多么多么苦，很多人说&#8220;别人只看到AC所得到的荣耀，而看不到我们背后训练的艰辛&#8221;<br>其实不是这样的，至少我不是这样，AC对我而言不是一种负担，不是一种压力，而是一种娱乐，一种生活方式，已经习惯了实验室的生活，可以除了吃饭睡觉都在实验室，这一切都是快乐的~~^_^当然，AC有成果的话会更加的快乐~~~O(&#8745;_&#8745;)O哈哈~ <br><br>一直奔跑下去吧~~A Crazy Man
<img src ="http://www.cppblog.com/notonlysuccess/aggbug/80162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-16 17:08 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/16/80162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>飘逸的N皇后问题位运算代码，纪念USACO创过第一关~~matrix67大牛博客上学的</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/15/79982.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Wed, 15 Apr 2009 04:24:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/15/79982.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/79982.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/15/79982.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/79982.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/79982.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br>ID:notonlysuccess<br>LANG:C++<br>TASK:checker<br></span><span style="COLOR: #008000">*/</span><span style="COLOR: #000000"><br>#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;cnt;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ans[</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">][</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;jilu[</span><span style="COLOR: #000000">13</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,maxn;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;dfs(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;row,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ld,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;rd,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;deep)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,buf,pos;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(deep&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;n)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(cnt</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ans[cnt][i]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;jilu[i];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&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;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;row&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;ld&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;rd;<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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</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">((buf&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;pos)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;pos)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jilu[deep]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;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;dfs(row</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos,(ld</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos)</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,(rd</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,deep</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">checker.in</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdin);<br>&nbsp;&nbsp;&nbsp;&nbsp;freopen(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">checker.out</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">w</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,stdout);<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,j;<br>&nbsp;&nbsp;&nbsp;&nbsp;scanf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n);<br>&nbsp;&nbsp;&nbsp;&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;maxn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">n;<br>&nbsp;&nbsp;&nbsp;&nbsp;dfs(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cnt;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(j</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;j</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n</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;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,ans[i][j]);<br>&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">,ans[i][j]);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,cnt);<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><br><br><br><br><br>哈哈，hdoj上超大数据量的N皇后也过了。。<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><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;cnt;<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;n,maxn;<br></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;dfs(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;row,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;ld,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;rd)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;buf,pos;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(row&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;maxn)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&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;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;row&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;ld&nbsp;</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">&nbsp;rd;<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(pos&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;pos&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;maxn;pos&nbsp;</span><span style="COLOR: #000000">&lt;&lt;=</span><span style="COLOR: #000000">&nbsp;</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;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">((buf&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;pos)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;pos)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">continue</span><span style="COLOR: #000000">;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(row</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos,(ld</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos)</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,(rd</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">pos)</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i,pos;<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),n)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;maxn&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</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">;<br>&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">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">n</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(pos,pos</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,pos</span><span style="COLOR: #000000">&gt;&gt;</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;cnt&nbsp;</span><span style="COLOR: #000000">&lt;&lt;=</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;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(n</span><span style="COLOR: #000000">&amp;</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;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">i;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dfs(pos,pos</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,pos</span><span style="COLOR: #000000">&gt;&gt;</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;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,cnt);<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/notonlysuccess/aggbug/79982.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-15 12:24 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/15/79982.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第四轮PK。。。</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79740.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Sun, 12 Apr 2009 16:59:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79740.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/79740.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79740.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/79740.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/79740.html</trackback:ping><description><![CDATA[最后一轮PK，抱这轻松做做的心态去比，结果出乎意料，哈哈<br>这次的题目没有以前那么水，每道都是要动点小脑筋的<br><br><a href="http://acm.tju.edu.cn/toj/showp3256.html">http://acm.tju.edu.cn/toj/showp3256.html</a><br>这是dfs，我惊讶别人暴力深搜竟然都能过。。。我晕<br>要是我来处数据的话暴力深搜一定爆掉。。<br>我是用hash[ <span lang=en>landscapes </span>][&nbsp;(<span lang=en>total length</span>)%k ][&nbsp;Lth ]来剪枝<br>这样的话最多也就搜索50*50*50个状态。。。很好的设计。。嘿嘿又往自己脸上贴金了<br><br><a href="http://acm.tju.edu.cn/toj/showp3257.html">http://acm.tju.edu.cn/toj/showp3257.html</a><br>不太清楚是什么算法，不过我程序里用的数组名是DP。。。当时下手的时候想写成DP的，结果就不伦不类掉了XD<br>不管用什么数组名，DP也好，HH也好，<span style="COLOR: red">①</span>反正记录下每个字母后边的和该字母相同的字母个数<br><span style="COLOR: red">②</span>然后用一个minch变量去扫一遍字符串，不断更新minch(看到这个变量名应该知道怎么更新的吧)同时记录下标minch的下标pos<br><span style="COLOR: red">③</span>扫到后边相同字母数是0的时候就比较一下，看minch和这个字母谁小<br>{<br>如果(minch小)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的话就输出minch同时下标跳回到之前记录的pos;<br>如果(minch大)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;的话就输出这个字母，然后继续扫;<br>再minch更新为最大<br>}<br>不要忘记吧已经输出的字母hash掉哦<br><br><a href="http://acm.tju.edu.cn/toj/showp3258.html">http://acm.tju.edu.cn/toj/showp3258.html</a><br>一看就是技巧题目。。看成是环，排序后找到一个最大的删除区间掉。。然后看看剩下的所能得到的绝对值最小值<br>注意要分类讨论。。比赛的时候被sample骗掉。。以为就是中间对称的只考虑了一种情况，其实有四种。。。。<br>错了好多遍。。。。<br><br><a href="http://acm.tju.edu.cn/toj/showp3259.html">http://acm.tju.edu.cn/toj/showp3259.html</a><br>简单题，晒法晒下然后再预处理一下<br><br><a href="http://acm.tju.edu.cn/toj/showp3260.html">http://acm.tju.edu.cn/toj/showp3260.html</a><br>图论阿。。看到就晕了。。。向来没有做过图论的题，最深的也就是二分图的最大匹配<br>完全匹配都还没有学过。。<br>没办法。。抱着一线希望来个强剪枝试试。。。结果不出所料TLE了。。。。<br><br>两个小时的时候就出了前四道暂时第一了，<a href="http://acm.tju.edu.cn/toj/contest/user_jinlin_125.html"><u><font color=#0000ff>Luke King</font></u></a>出了三道，而我的罚时太多（因为心态比较放松，所有一有思路写好了就提交，WA了修改一下又提交又WA，其实很多罚时是不必要的）。。囧了。所以<a href="http://acm.tju.edu.cn/toj/contest/user_jinlin_125.html"><u><font color=#0000ff>Luke King</font></u></a>只要在比赛前出题就能超过我。A是比较简单的<br>果然，在最后十分钟出了A超过我了，我在最后十分钟提交了E，结果是超时。。<br><br>赛后得知<a href="http://acm.tju.edu.cn/toj/contest/user_jinlin_125.html"><u><font color=#0000ff>Luke King</font></u></a>是09的。。。天津市赛第六。。高中生阿。。Orz
<img src ="http://www.cppblog.com/notonlysuccess/aggbug/79740.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-13 00:59 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79740.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第三轮PK。。。。</title><link>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79739.html</link><dc:creator>shǎ崽</dc:creator><author>shǎ崽</author><pubDate>Sun, 12 Apr 2009 16:24:00 GMT</pubDate><guid>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79739.html</guid><wfw:comment>http://www.cppblog.com/notonlysuccess/comments/79739.html</wfw:comment><comments>http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/notonlysuccess/comments/commentRss/79739.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/notonlysuccess/services/trackbacks/79739.html</trackback:ping><description><![CDATA[<a href="http://acm.tju.edu.cn/toj/showp3251.html">http://acm.tju.edu.cn/toj/showp3251.html</a><br>水题。。。瞬间被人秒的。。drogon大大说算日期和星期的有个什么公式，学习<br><a href="http://acm.tju.edu.cn/toj/showp3252.html">http://acm.tju.edu.cn/toj/showp3252.html</a><br>深搜，每次搜到四个区域的值保持一下，然后枚举12种可能取最小值<br><a href="http://acm.tju.edu.cn/toj/showp3253.html">http://acm.tju.edu.cn/toj/showp3253.html</a><br>比赛的时候想了半个小时的矩阵构造。。。后来发现2^20一定有循环节。用未压缩保存了状态然后hash<br>结果最后半个小时提交的时候电脑蓝屏（三教的破电脑），开机还原后代码全无<br>启动还启动了10分钟。悲剧收场，人品不好啊。。。<br><a href="http://acm.tju.edu.cn/toj/showp3254.html">http://acm.tju.edu.cn/toj/showp3254.html</a><br>模拟加贪心。简单题<br><a href="http://acm.tju.edu.cn/toj/showp3255.html">http://acm.tju.edu.cn/toj/showp3255.html</a><br>比赛的时候时间都花在了C上边，没时间看。。。<br><br><br>这场比赛只有两道水题，所有我做了三道也都排在了前十&nbsp;&nbsp;&nbsp;%&gt;_&lt;%&nbsp;&nbsp;&nbsp;要是电脑不蓝屏。。。
<img src ="http://www.cppblog.com/notonlysuccess/aggbug/79739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/notonlysuccess/" target="_blank">shǎ崽</a> 2009-04-13 00:24 <a href="http://www.cppblog.com/notonlysuccess/archive/2009/04/13/79739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>