??xml version="1.0" encoding="utf-8" standalone="yes"?>久久黄视频,精品乱码久久久久久夜夜嗨,婷婷久久综合九色综合98http://www.shnenglu.com/mtysblog/category/15739.htmljust for codingzh-cnThu, 27 Jan 2011 17:40:07 GMTThu, 27 Jan 2011 17:40:07 GMT60[z]位运与l合搜烦Q一Q?/title><link>http://www.shnenglu.com/mtysblog/articles/139481.html</link><dc:creator>_飞寒</dc:creator><author>_飞寒</author><pubDate>Thu, 27 Jan 2011 11:41:00 GMT</pubDate><guid>http://www.shnenglu.com/mtysblog/articles/139481.html</guid><wfw:comment>http://www.shnenglu.com/mtysblog/comments/139481.html</wfw:comment><comments>http://www.shnenglu.com/mtysblog/articles/139481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/mtysblog/comments/commentRss/139481.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/mtysblog/services/trackbacks/139481.html</trackback:ping><description><![CDATA[     摘要:   我们知道Q一个集合的子集通常可由一个位串来表示Q比如对于集?{a, b, c, d, e}Q可用位?s = ”11001” 来表C其子集 {a, b, e}。当集合的大不大于机器的字长(在下文中假讑֭长ؓ(f)32Q时Q这些位串又可用一个无W号整数来表C,比如上面?s 可以存储?0b10011 = 19。在此种情Ş下,很多集合操作都可以通过位运来...  <a href='http://www.shnenglu.com/mtysblog/articles/139481.html'>阅读全文</a><img src ="http://www.shnenglu.com/mtysblog/aggbug/139481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/mtysblog/" target="_blank">_飞寒</a> 2011-01-27 19:41 <a href="http://www.shnenglu.com/mtysblog/articles/139481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>USACO-- 搜烦方式http://www.shnenglu.com/mtysblog/articles/137046.html_飞寒_飞寒Mon, 20 Dec 2010 13:36:00 GMThttp://www.shnenglu.com/mtysblog/articles/137046.htmlhttp://www.shnenglu.com/mtysblog/comments/137046.htmlhttp://www.shnenglu.com/mtysblog/articles/137046.html#Feedback0http://www.shnenglu.com/mtysblog/comments/commentRss/137046.htmlhttp://www.shnenglu.com/mtysblog/services/trackbacks/137046.html 
  
Search Techniques

搜烦方式

?by Lucky Craz

样例: n 皇后问题 [l典问题]

?n 个皇后摆攑֜一?n x n 的棋盘上Q得每一个皇后都无法d到其他皇后?/p>

深度优先搜烦 (DFS)

显而易见,最直接的方法就是把皇后一个一个地摆放在棋盘上的合法位|上Q枚举所有可能寻扑֏行解。可以发现在盘上的每一行(或列Q都存在且仅存在一个皇后,所以,在递归的每一步中Q只需要在当前?或列Q中L合法|选择其中一个格摆放一个皇后?br>
 1 search(col)
 2     if filled all columns
 3         print solution and exit 

 4   for each row
 5       if board(row, col) is not attacked
 6            place queen at (row, col)
 7            search(col+1)
 8            remove queen at (row, col)

从search(0)开始搜索,׃在每一步中可选择的节点较?yu),该方法可以较快地求解Q当一定数量的皇后被摆攑֜盘上后那些不会(x)被攻d的节点的数量迅速减?/p>

q是深度优先搜烦的一个经怾题,该算法L能尽可能快地抵达搜烦?wi)的底层Q当 k 个皇后被摆放到棋盘上Ӟ可以马上定如何在棋盘上摆放下一个皇后,而不需要去考虑其他的顺序摆攄后可能造成的媄响(如当前情冉|否ؓ(f)最优情况)Q该Ҏ(gu)有时可以在找到可行解之前避免复杂的计,q是十分值得的?/p>

深度优先搜烦h一些特性,考虑下图的搜索树(wi)Q?/p>



该算法用逐步加层的方法搜索ƈ且适当时回溯,在每一个已被访问过的节点上标号Q以便下ơ回溯时不会(x)再次被搜索。绘画般圎ͼ搜烦?wi)将以如下顺序被遍历Q?/p>



复杂度:(x)

假设搜烦?wi)?d 层(在样例中 d=n Q?/em>x盘的列数Q。再假设每一个节炚w?c 个子节点Q在样例中,同样 c=n Q即盘的行敎ͼ但最后一层没有子节点Q除外)。那么整个搜索花ȝ旉与 cd 成正比,是指数的。但是其需要的I间较小Q除了搜索树(wi)以外Q仅需要用一个栈存储当前路径所l过的节点,其空间复杂度?O(d) ?/p>

样例Q骑士覆盖问题[l典问题]

在一?n x n 的棋盘中摆放量的骑士Q得棋盘的每一格都?x)被臛_一个骑士攻d。但骑士无法d到它自己站的位置.

q度优先搜烦 (BFS)

在这里,最好的Ҏ(gu)莫过于先定 k 个骑士能否实现后再尝?k+1 个骑士,q就?strong>q度优先搜烦。通常Q广度优先搜索需用队列来帮助实现?br>
 1 process(state)
 2     for each possible next state from this one
 3         enqueue next state 

 4 search()
 5     enqueue initial state
 6     while !empty(queue)
 7         state = get state from queue
 8         process(state)

q度优先搜烦得名于它的实现方式:(x)每次都先搜索树(wi)某一层的所有节点全部访问完毕后再访问下一? 再利用先前的那颗搜烦?wi),q度优先搜烦以如下顺序遍历:(x)



首先讉K根节点,而后是搜索树(wi)W一层的所有节点,之后W二层、第三层厖以此类推?/p>

复杂度:(x)

q度优先搜烦所需的空间与深度优先搜烦所需的不同( n 皇后问题的空间复杂度?O(n) Q?q度优先搜烦的空间复杂取决于每层的节Ҏ(gu)。如果搜索树(wi)?k 层,每个节点?c 个子节点Q那么最后将可能?c k 个数据被存入队列Q这个复杂度无疑是巨大的。所以在使用q度优先搜烦Ӟ应小心处理空间问题?/p>

q代加深搜烦 (ID)

q度优先搜烦可以用P代加深搜索代ѝP代加深搜索实质是限定下界的深度优先搜索,即首先允许深度优先搜索搜?k 层搜索树(wi)Q若没有发现可行解,再将 k+1 后再q行一ơ以上步骤,直到搜烦到可行解。这?#27169;仿广度优先搜?#25628;索法比vq搜是牺牲了旉Q但节约了空间?br>
 1 truncated_dfsearch(hnextpos, depth)
 2     if board is covered
 3         print solution and exit 

 4     if depth == 0
 5         return 

 6     for i from nextpos to n*n
 7         put knight at i
 8         truncated_dfsearch(i+1, depth-1)
 9         remove knight at i 

10 dfid_search
11     for depth = 0 to max_depth
12        truncated_dfsearch(0, depth)

复杂度:(x)

 

ID旉复杂度与DFS的时间复杂度Q?em>O(n)Q不同,另一斚wQ它要更复杂Q某ơDFS若限?k ?em>Q?/em>则耗时 ck ?/em>若搜索树(wi)共有 d 层,则一个完整的DFS-ID耗时 c0 + c1 + c2 + ... + cd 。如?c = 2 Q那么式子的和是 cd+1 - 1 Q大U是同效BFS的两倍。当 c > 2 Ӟ子节点的数目大于2Q,差距变:(x)ID的时间消耗不可能大于同效BFS的两倍。所以,但数据较大时QID-DFSq不比BFS慢,但是I间复杂度却与DFS相同Q比BFS得多?/p>

法选择Q?/h4>

当你已经知道某题是一道搜索题Q那么选择正确的搜索方式是十分重要的。下面给你一些选择的依据?/p>

表:(x)
搜烦方式 I间 使用情况
DFS O(c k) O(k) 必须遍历整棵?wi),要求的深度或l的q节点,或者你q不需要解的深度最?/td>
BFS O(c d ) O(c d ) 了解到解十分靠近根节点,或者你需要解的深度最?/td>
DFS+ID O(c d) O(d) 需要做BFSQ但没有_的空_(d)旉却很充裕?/td>
d Q解的深?br>k Q搜索树(wi)的深?br>d <= k

C每一U搜索法的优ѝ如果要求求出最接近根节点的解,则用BFD或ID。而如果是其他的情况,DFS是一U很好的搜烦方式。如果没有够的旉搜出所有解。那么用的Ҏ(gu)应最Ҏ(gu)搜出可行解,如果{案可能L节点较近Q那么就应该用BFS或IDQ相反,如果{案L节点较远Q那么用DFS较好。还有,请仔l小心空间的限制。如果空间不以让你使用BFSQ那么请使用q代加深吧!

cM问题Q?/h4>

质数肋骨[USACO 1994 册]

一个数Q如果它从右到左的一位、两位直到N位(N是)所构成的数都是质数Q那么它?yu)qU质数。例如:(x)233?3?都是质数Q所?33是超U质数。要求:(x)d一个数NQN <=  9Q,~程输出所有有N位的质数?/p>

q题应用DFSQ因为每一个答案都有N层(最底层Q,所以DFS是最好的Q?/p>

Betsy的旅?[USACO 1995 资格赛]

一个正方Ş的小镇被分成 NxN (2 <= N <= 6Q个方|Besty 要从左上角的Ҏ(gu)到达左下角的Ҏ(gu)Qƈ且经q每一ơ方格都恰好l过一ơ。编E对于给定的 N 计算?Besty 能采用的所有的旅行路线的数目?/p>

q题要求求出解的数量Q所以整颗搜索树(wi)都必被遍历Q这׃可行解的位置与出解速度没有关系了。所以这题可以用BFS或DFSQ又因ؓ(f)DFS需要的I间较少Q所以DFS是较好的Q?/p>

奶牛q输 [USACO 1995 册]

奶牛q输公司拥有一辆运输卡车与牧场 A Q运输公司的d是在AQBQCQDQEQF和G七个农场之间q输奶牛。每两个农场之间的\E(可以用floyed改变Q已l出。每天早晨,q输公司都必ȝ定一条运输\U,使得q输的总距L短。但必须遵守以下规则Q?/p>

  • 农场 A 是公司的基地。每天的q输都必Mq开始ƈ且在q结束?
  • 卡RM时刻都只能最多承载一头奶牛?
  • l出的数据是奶牛的原先位|与q输l束后奶牛所在的位置?

而你的Q务是在上q规则内L最短的q输路线?/p>

在发现最优解时必L较所有可行解Q所以必遍历整|索树(wi)。所以,可以用DFS解题Q?/p>

横越沙漠 [1992 IOI]

一沙漠探险者正试着让他们中的一部分人横渡沙漠。每一个探险者可以携带一定数量的_(d)同时他们每天也要喝掉一定量的水。已知每个探险者可携带的水量与每天需要的水量都不同。给出每个探险者能携带的水量与需要的水量与横渡沙漠所需的天敎ͼL(fng)E求出最多能有几个h能横渡沙漠。所有探险者都必须存活Q所以有些探险者在中途必返回,q回时也必须携带_的水。当Ӟ如果一个探险者返回时有剩余的_(d)除去q回所需的水以外Q,他可以把剩余的水送给他的一个同_(d)如果它的同伴可以携带的话?/p>

q题可以分成两个问题,一个是如何为探险者分l,另一个是某些探险者应在何处返回。所以用ID-DFS是可行的。首先尝试每一个探险者能否独自横渡,然后是两个h配合Q三个h配合。直到结束?/p>



_飞寒 2010-12-20 21:36 发表评论
]]>
GDCPC 2010 ȝhttp://www.shnenglu.com/mtysblog/articles/137044.html_飞寒_飞寒Mon, 20 Dec 2010 13:33:00 GMThttp://www.shnenglu.com/mtysblog/articles/137044.htmlhttp://www.shnenglu.com/mtysblog/comments/137044.htmlhttp://www.shnenglu.com/mtysblog/articles/137044.html#Feedback0http://www.shnenglu.com/mtysblog/comments/commentRss/137044.htmlhttp://www.shnenglu.com/mtysblog/services/trackbacks/137044.html 
    一转眼六月中了,?ji)号那天我问了一个女孩子Q记得今天是啥日子么Q本来我是想告诉她今天是6.9圣战 Q狂?⊙﹏⊙bQ,可是她不假思烦的跟我说今天是我们两相识正好一个月的日?#8230;… 我那个惭愧啊Q我是想说不知道我这人活得是不是太不负责MQ连日子逝的速度都不曾注意,省赛到现在一个月多了Q我一日志和ȝ都没写,正课的进度又落下了许多,法却没有多学到多少。不q还好我和以前不同了Q凡事都知道有意识的LӞ不让自己不知不觉中放U下去,所以上来例行更C下?/div>
    先说重点Q那是省赛的ȝ。教l最后通牒不写ȝ的明q就不用比赛了(⊙﹏⊙bQ结果我们队三儿到现在还是没?#8230;… a归正传,q里只ȝ正赛上的情况Q至于\上\下中大观光最后还如此好的邂逅了一个好奛_q些׃ȝ了。五月九(ji)正赛是这L(fng)Q十一道题Q十道常规梯度的题目外加一道郭嵩山“保证每个队都通过一道题”…… 的一道题Q汗Q。上Z后大家开始读题,哥我英文烂素来天知地知我知现在也Z让你知了Q于是常规的先看风景Q队友读题。三十秒后LXJ惊呼A题是水题Q于是我赶紧上位Q我又是q题面都没看的情况下光听LXJ讲完按她说的敲…… 她讲完的时候我正好敲完QXJ问我Ҏ(gu)得到底对不对Q我说我不知道啊我很怿你的。他们都很紧张唯独我不紧张(果然我最没团队责L stOQ?#8230;… 交了Q?Y。开始分头读题,我因Z间看C道中国剩余定理变U的题,大感兴奋地投入其中。不知过了多久XJ把我拽了回来讲B的题意,讲完W一遍,我什么都没听?#8230;… 重复了三四遍再加上我自己的分析后才大概明白了Q和他们商量了下Q画了下草稿U找不到通项公式之类的东西,最后他们两看着1后面跟着??天真的说我们模拟一下八Q^_^ …… 事实证明我让他们惛_的是正确的,要不然GDCPC2010׃用过别的题了…… 话分两头Q在我纠l的时候,SWH和LXJ也在艰难的读别的题,因ؓ(f)三个09的阵容实力实在有限,大部分题d来了也不?x)做Q最后没办法只好开始跟风策略。这时候我看了下全局Q我们房间的人基本把AB都过掉了stOQ还有很多hq了最后一个题Q至于我们房间里的那个final队那可以忽略了……
    ׃大部分题不懂Q他们开始跟风看KQ很快发现是一个表面上看很熟?zhn)的搜索题。再说我q边Q历l一个多时的纠l之后我l于定了BE序的边界条Ӟ二话不说果断交之Q仍?Y。说说这B题的教训Q其实我的代码核心不q八行,应该说思\很精湛了Q结果却因ؓ(f)对确定边界条件这U事不熟l,最后浪费了那么多时_(d)应该说根本原因还是练得不够吧Ql努力。他们这边在我Y掉之后说明了下K的题意,开始合力纠l一道蓝色气球的基本题。我孤独的纠lK。对于那道蓝色气球,因ؓ(f)我没有参与细节,所以没什么发a权,他们一共wa??TLE1?RE一??Q可能是理解上的疏忽Q也可能q道题真的有隑ֺ吧。我知道我该改变了,以后不能把事情都攄他们Q或许我当时帮忙看一下的话,也不至于|那么多ơ?/div>
    因ؓ(f)一׃p掉了三个题,剩下的也没多好说的了,重点是我的K是如何在U结的。这是一道完全图的搜索,暴力DFS的话肯定?x)O(n!)无疑Q其实我也坚信是动态规划写法,但可(zhn)的是在最后长达两个小时的旉里,我始l没能把完整的状态{ULE纠l出来,我的方程始终存在后效性。后来我居然开始怀疑自qx到底对不对了Q在最后一时的时候,没办法必M手尝试了。这是一个纯QuQ的版本不加M剪枝Q其实这道题也剪不了什么)Q很不幸良心告诉我这是不可能?#8230;… 敲到最后,我在队友的注视下攑ּ了。我对不起你们。我最后还是没能想出来Q这与我赛前信誓旦旦的说一定要把动规的题目拿下的誓a形成鲜明讽刺?/div>
 
ȝQ 
   q次比赛Q有了校内赛和珠的经验,我们的配合已l算是顺风顺水的了,唯一限制我们的就是积累。很遗憾Q题是动态规划,只是我还是没能啃出来Q这是实力问题Q我明白的。总而言之,一切都有待提高Q我的修g未止步,我相信你们也是,QDQPQ2Q1Q见?/div>

_飞寒 2010-12-20 21:33 发表评论
]]>2010校内赛ȝhttp://www.shnenglu.com/mtysblog/articles/137043.html_飞寒_飞寒Mon, 20 Dec 2010 13:32:00 GMThttp://www.shnenglu.com/mtysblog/articles/137043.htmlhttp://www.shnenglu.com/mtysblog/comments/137043.htmlhttp://www.shnenglu.com/mtysblog/articles/137043.html#Feedback0http://www.shnenglu.com/mtysblog/comments/commentRss/137043.htmlhttp://www.shnenglu.com/mtysblog/services/trackbacks/137043.html 

 

关键词:(x) ACM 北师?2010 校内?nbsp; ȝ 0.o_stO_(*^_^*)
 

一点半正式比赛开始,拿到题目后,我们原本打算按珠的计划分工读题,无奈看见水题实在是顺着排的Q导致我们不得不集体看前面的题目。当时自己拿到题扫了一眼目录,看到“二叉?#8221;三个大字Q以为CC老师题,于是立马开始读题,让刘晓佳和石文辉研究其他送气球的题目?br>q时候辉哥读完A题让我第一个敲Q说是可以壮士气Q于是我在完全没看过题目的情况下听辉哥讲完就敲了Qhash查找Q之?br>之后l箋攻IQ题没读完晓?jng)_辉哥p已经定了的写法,于是再次不用读题Q听辉哥讲完敲了。取出qsort模板Q瞬间A之?br>提交B之后l箋攻EQ题目读完发C是裸题更明显不是考二叉树(wi)Q而我一看到是数学题Q又本能的想先放一放,于是改读F题。这时候晓x了C题,于是换h敲代码,g敲得挺慢条斯理的Q导致我们另外两个h也?zhn)哉游哉。这时候我已经军_攻FQ辉哥研ID题。经q一D|间之后晓佌Cq掉了,我抬头看表,切前三题用一时Q时间充裕?br>F题读完之后,_略规划了下法Q构建N叉树(wi)Q因为对?wi)的最染色数是二,解法便很明显了,Ҏ(gu)(wi)做层序遍历,分别求出偶数?wi)深和奇数?wi)q节点敎ͼ枚D与h(hun)格的乘积卛_。算法确定之后,又考虑到此题不是给09的做的,保险赯q是{队友把基本题目都过掉再写好了,于是转n问辉哥D题的q度Q辉哥说有想法但是比较麻烦。我觉得模拟题虽焉烦但应该一两个人就能应付了Q于是叫晓佳和辉哥一赯虑D题,而我则另外去考虑EQ结果这个决定铸成本ơ比赛第一大错Q以后有教训了?br>看完E题,用稿U模拟了几个深度Q仍然找不出规律。我也不定是存在递推式还是有直接的f(a,b)。这时候我看了下两人的情况Q他们已l开始敲D题的代码Q但是敲得很慢。于是我问他们这题有完全的把握没有,他们说还好,试一下。听完这句话我就大概猜到ȝ了,因ؓ(f)两h是很这么说的。但因ؓ(f)我也没读q题Q所以觉得也许真的是很麻烦的模拟题,惛_辉哥qx模拟题的正确率的比我高Q于是交待他们一定要x楚了再写Q然后就考虑我的了,q时候一个半时q去了,两边都不太有头A?br>大概再过了十几分钟,我看看表Q问辉哥什么情况,辉哥说写完了但是样例调不q,于是我让晓佳q来和我一赯虑E题,中途试敲了一ơO(n)的逆推Q预料之中的TLE?br>再过了十几分钟,E题毫无头l,于是我不得不h看看其他队伍的情况了Q大?9的队伍通过了D题!不得了,一个小时过M而我们的队伍一题的q度都没有!看看辉哥Q辉哥似乎还是没扑և错误Q于是我军_有必要开新题了。因为E题实在没有头l,所以我军_留给数学功底好点的晓佳l想Q自己开始在草稿U怸设计F的代码。结果边写边发现q代码实现v来远没有我想象的复杂Q十几分钟就写完了很短的完整品。这时候我要辉哥开半个屏幕l箋查,而我把F的代码敲上去Q敲完之后测试也一路顺风顺_(d)于是在两人的怂恿下,拜了拜曾哥就交了。三十秒之后打开界面Q一个绿Ҏ(gu)a(b)的YES!!!
q个YES可谓我们队伍的{折点?br>不能不说QF题的AC让我们队伍信心大增。我q时候终于可以回来和两h一hD了,q时候比赛已l过M三个时Q中间有一个小时的旉是一点进度都没有Q而有近半个时的时_(d)也就是我手写F题的旉Q我们队伍的键盘是闲|状态!对于出现了这U情况,我知道是自己安排分工p造成的,我应该承担责仅R?br>静下心来l读完D题,一看这个结构,W一反应是用数组队列或者指针链表做Q再E微l想了下代码的实玎ͼ发现实不算复杂。而最重要的是两h如今的程序已l被调到不堪入目的样子了Q于是我提议让我重写D题,q时候还?5分钟?br>十五分钟后写完单链表的做法,开始调试。第二组数据卡之Q从头想了一遍思\Q确认没有错误,于是开始排BUG。最后发现数字与串之间的I格没有冲掉。改完再,q时候诡异的情况开始上演,单组试数据输入的时候无误,但连l输入的时候就?x)出错!症状诡异到无法从字面上看出错误来Q于是不得不下断点去跟踪Q费一q串无法形容的周折之后,辉哥发现是我把表头free()掉了两次。改之,希望降(f)?br>q时候看看表Q?7Q?7分,q有十三分钟Q晓婯不能看到我们拍方大同回来Q基本就看这一ơ提交了。于是在晓佳和辉哥的注视下,我确实是手有炚w抖地点下了submit……
在那十几U的旉里我们三个h把曾哥春哥佛(jng)哥都拜了个遍?br>最后的最后,那个“D Judge YES”Q带l了我们三个人第二声发自的尖叫?br> 
--------------------------------------------------------------------
q次比赛下来Q有好有坏,好的斚w是Q我们队伍的正确率是癑ֈ百。联惛_自己做英文题目时的?zhn)惨情况,p得出一个清晰的l论Q\
 耐心*[明了题意+Q清?完整Q?的思\]=AC?br>当然q次比赛下来也暴露了很多的问题,首先是我们的人员分工中途发生了不合理的现象Q导致键盘被完全闲置了半个多时Q我太过于执着自己的两道题目,而没有顾?qing)队友,使得两道题目在最后一个小时才先后被过掉,在时间上已经输掉了不。如果当时自己先放下E题去帮忙看DQ我们队伍的总耗时l对不会(x)是现在这L(fng)果,而且q能有更多的旉去考虑别的题目Q其实在最后几分钟Q晓?jng)_看完H题之后,很认真的告诉我,她在当年高中的数学试卷上做过cM的问?#8230;…  Orz Q!Q!
  然后是关于出错调试的问题Q这ơ队伍在D题上的调试值得商榷Q花掉了太多的时间ƈ且始l没有调出原因来Q这一Ҏ(gu)们全体队员都有责任,今后再遇到类似的问题Ӟ必须得懂得果断重写了?br> 其次Q自己在数学题上的发挥也十分不好Q一开始就产生了本能的逃避心理Q实在是不应该。我也知道数学题是可以拉开排名的题目,以后自己一定要下更多功夫在q上面了?br>最后自己得出的一Ҏ(gu)训就是,即是ACM的比赛,个h英雄M也是无益的,队员的最l目的应该是要让队伍的整体成l更好,而不应该Ua(b)Z让自己发挥得更出艌Ӏ?br>以上各点Q自׃后一定}记?/p>

_飞寒 2010-12-20 21:32 发表评论
]]>
int_ijk 2009ACM珠v赛ȝhttp://www.shnenglu.com/mtysblog/articles/137042.html_飞寒_飞寒Mon, 20 Dec 2010 13:30:00 GMThttp://www.shnenglu.com/mtysblog/articles/137042.htmlhttp://www.shnenglu.com/mtysblog/comments/137042.htmlhttp://www.shnenglu.com/mtysblog/articles/137042.html#Feedback0http://www.shnenglu.com/mtysblog/comments/commentRss/137042.htmlhttp://www.shnenglu.com/mtysblog/services/trackbacks/137042.html 

关键? ACM ICPC 珠v?金山?2009 BNUEP int_ijk

注:(x)q是高手的心得,高手是高手。。?学弟怎么能不MB+YMQ收藏之

===================================================================================================

q是有史以来最奇的一ơ比?

q种奇的迹象从一大早开始持l?..ȝq院要坐车一个半时, 和去一广州差不多的时? 10炚w开始比? 我们学校8支队?点半(zhn)闲地坐着大巴q去? 按照北理工的教练的说法就? 你们学校也太不重视比赛了, 怎么都不住那? 不过也的? 要是q次来得?qing)的? 那么省赛的时候一大早出发应该也来得及(qing)>_<

然后一个神奇的地方? 比赛一共分?个机? 而且机器良莠不齐, 差距?qing)其巨? (据说把机房分成了三个{,上等?中等房和下等? 每个学校按比例分?..)然后我们队自从用了int_ijk队名之后, 每次比赛都是在角落里. q次也不例外, 被分配到了最后排的左下角, U观全场.

--------按照惯例 下面是流水̎----------------

先列举一下题?/p>

Apple Tree: U性DP. Banana Game: 博弈. Cross Words: 字符串查?

Download Again: 单题. Encrypted SMS: 中序遍历. Football Match: 概率.

General Problem: 三次方程求根. Horse in Chinese Chess: q搜.

Insect World: 模拟. Jack's Lost Lists: 枚D.

开始分头看? 鹏ABC, 我DEF,许翰中GHIJ. 大约20分钟的时候交了一? 鹏说B是博? 之前做过的原? 我看了DE, 觉得都是单题, 不过q感觉应该不是最单的题目,所以没有马上上d(后来发现整套题目都是q种隑ֺ,没有很大的区分度). q了一?x)儿我先dD, 许翰中说不用模拟, 直接用文件d除以带宽就好了. 于是很快写完, 一ơAC?

鹏说B做过, 然后很神奇的拿出一论? 上面有一个终极公? 敲上ȝ间过掉了. 我倒比较担心的是怕我们学校的其他几个队伍跟风的话肯能被卡?

然后是许C上去写了A? 鹏帮忙看了一下DP公式. 好像怎么错了一? 然后AC掉了.

q个时候大概是1时多一? 我换上去写C(j)? q个题题意挺奇? 我们交流了好几次才确认了题意. 看了一下数据量不大, 也有好几个队q了, 应该不用字典? 二分查找p. 敲完代码也一ơAC?

E题其实按照题目所说的方式递归q去, 前序输出好? 许翰中上L, 我帮忙看代码, 貌似也是一ơAC?

q个时候尚鹏弄完F? 用最直接求概率的Ҏ(gu)好? 打了个表, 也一ơAC?

看了一下排? 发现I题挺多hq? 于是我看了一? 发现直接模拟可? 找最q点U性扫描也不会(x)时. 于是也很快AC?

现在q剩三个? G,H,J. 大约q有两个半小时吧. 旉很充? 但是华农那个队已l?题了...我们排在W二, 已经觉得赶不上了, 于是心理上已l做好了最后排在第二的准备...

许翰中看完J题就惊呼--原题!于是拿出黑书,我一看果?.>_< q个时侯鹏上去敲G? 我在旁边帮忙看J? 也准备着些H? 敲完发现有点问题, 于是打印下来. 换许C上去写J, 用黑书上的n^3的算? 提交? 发现不对... 于是换我上去些H. 但是我又有点担心说这个时候开三个题是不是有点冒险, 然后他俩说没? 大不了回d? 我说? 于是去敲H. 敲完发现也不?.于是又换鹏l箋改G. 好像是代码里面某个地Ҏ(gu)错了, 改好了提交AC?

现在剩两个题, 代码都差不多写好? q有一个半时不到? 我和许翰中轮纠lH和J. 许翰中错了好几次, 后来觉得是不是可能枚丑և来的解会(x)不合? 于是加强了对解得限制, 然后AC?

q有一时, q剩我这个题, 应该很快pAC. W一ơ提交犯了低U错? 调试的时候把枚D的步数改了, 提交忘了该回? l果得到一个TLE. q个TLE吓了我一? 反复了复杂度不可能时? 估计是裁判判错了, x好几分钟都没敢提? 改了两个地方之后提交q是WA. 查了好久才发? 判断重复的时?我是判断记录步数的数l值是否ؓ(f)0, q里D了BUG, 因ؓ(f)计算的时候有?008, 求了模之后原来不?的也可能??.. ?改了q里提交AC?

q个时? q有大约半小时比赛结? 教练在遥q的某个地方收到一条裁判发来的短信"你们圆满?...?

-----------------------------------------------

W一ơ比赛的时候做完所有的题目, 感觉题目没有拉出梯度? 单的不够? N也不够难. 而且我们惊呼了好几次--原题...(不过也情有可? 出题者的旉实在太仓?.到最后的时候时候看排名发现华农那队依然9?.我们{比赛结束的那段旉׃直在罚?..

最后结果是, 我们学校1个一{奖, 2个二{奖, 3个三{奖. q有两个08U的队伍~Zl验可惜没能拿奖.

ȝ来说q次比赛q气的成分占了很大因? 遇到好几个原? 而且q么多次比赛W一ơ用上了带来的资? q次我们队正率q算可以, 不用写检? 不过我最后一个题q是犯了一个低U错误和一个高U错? 有点q意不去...



_飞寒 2010-12-20 21:30 发表评论
]]>
ACM主要法介绍http://www.shnenglu.com/mtysblog/articles/137039.html_飞寒_飞寒Mon, 20 Dec 2010 13:20:00 GMThttp://www.shnenglu.com/mtysblog/articles/137039.htmlhttp://www.shnenglu.com/mtysblog/comments/137039.htmlhttp://www.shnenglu.com/mtysblog/articles/137039.html#Feedback0http://www.shnenglu.com/mtysblog/comments/commentRss/137039.htmlhttp://www.shnenglu.com/mtysblog/services/trackbacks/137039.html1.图论
2.数据l构
3.搜烦
4.动态规?br>5.模拟
6.数学
7.计算几何
8.博弈?br>9.字符?br>Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?br>初期:
一.基本法:
(1)枚D. (poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分L.
(4)递推.
(5)构造法.(poj3295)
(6)模拟?(poj1068,poj2632,poj1573,poj2993,poj2996)
?囄?
(1)囄深度优先遍历和广度优先遍?
(2)最短\径算?dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
(3)最生成树(wi)法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
(4)拓扑排序 (poj1094)
(5)二分囄最大匹?(匈牙利算? (poj3041,poj3020)
(6)最大流的增q\法(KM法). (poj1459,poj3436)
?数据l构.
(1)?(poj1035,poj3080,poj1936)
(2)排序(快排、归q排(与逆序数有?、堆? (poj2388,poj2299)
(3)单ƈ查集的应?
(4)哈希表和二分查找{高效查找法(数的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
(5)哈夫曼树(wi)(poj3253)
(6)?br>(7)trie?静态徏?wi)、动态徏? (poj2513)
?单搜?br>(1)深度优先搜烦 (poj2488,poj3083,poj3009,poj1321,poj2251)
(2)q度优先搜烦(poj3278,poj1426,poj3126,poj3087.poj3414)
(3)单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
?动态规?br>(1)背包问题. (poj1837,poj1276)
(2)型如下表的简单DP(可参考lrj的书 page149):
1.E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列)
(poj3176,poj1080,poj1159)
3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树(wi)问题)
?数学
(1)l合数学:
1.加法原理和乘法原?
2.排列l合.
3.递推关系.
(POJ3252,poj1850,poj1019,poj1942)
(2)数论.
1.素数与整除问?br>2.q制?
3.同余模运?
(poj2635, poj3292,poj1845,poj2115)
(3)计算Ҏ(gu).
1.二分法求解单调函数相关知?(poj3273,poj3258,poj1905,poj3122)
?计算几何?
(1)几何公式.
(2)叉积和点U的q用(如线D늛交的判定,点到U段的距ȝ). (poj2031,poj1039)
(3)多边型的单算?求面U?和相兛_?点在多边型内,多边型是否相?
(poj1408,poj1584)
(4)凸包. (poj2187,poj1113)
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-
中:
一.基本法:
(1)C++的标准模版库的应? (poj3096,poj3007)
(2)较ؓ(f)复杂的模拟题的训l?poj3393,poj1472,poj3371,poj1027,poj2706)
?囄?
(1)差分U束pȝ的徏立和求解. (poj1201,poj2983)
(2)最费用最大流(poj2516,poj2195)
(3)双连通分?poj2942)
(4)通分支及(qing)其羃?(poj2186)
(5)囄割边和割?poj3352)
(6)最割模型、网l流规约(poj3308, )
?数据l构.
(1)U段? (poj2528,poj2828,poj2777,poj2886,poj2750)
(2)静态二叉检索树(wi). (poj2482,poj2352)
(3)?wi)状树(wi)?poj1195,poj3321)
(4)RMQ. (poj3264,poj3368)
(5)q查集的高应用. (poj1703,2492)
(6)KMP法. (poj1961,poj2406)
?搜烦
(1)最优化剪枝和可行性剪?br>(2)搜烦的技巧和优化 (poj3411,poj1724)
(3)记忆化搜?poj3373,poj1691)
?动态规?br>(1)较ؓ(f)复杂的动态规?如动态规划解特别的施行商问题{?
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
(2)记录状态的动态规? (POJ3254,poj2411,poj1185)
(3)?wi)型动态规?poj2057,poj1947,poj2486,poj3140)
?数学
(1)l合数学:
1.Ҏ(gu)原理.
2.抽屉原理.
3.|换与Polya定理(poj1286,poj2409,poj3270,poj1026).
4.递推关系和母函数.
(2)数学.
1.高斯消元?poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率问题. (poj3071,poj3440)
3.GCD、扩展的Ƨ几里d(中国剩余定理) (poj3101)
(3)计算Ҏ(gu).
1.0/1分数规划. (poj2976)
2.三分法求解单?单谷)的极?
3.矩阵?poj3150,poj3422,poj3070)
4.q代D(poj3301)
(4)随机化算?poj3318,poj2454)
(5)杂题.
(poj1870,poj3296,poj3286,poj1095)
?计算几何?
(1)坐标L?
(2)扫描U算?例如求矩形的面积和周长ƈ,常和U段?wi)或堆一起?.
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
(3)多边形的内核(半^面交)(poj3130,poj3335)
(4)几何工具的综合应?(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-
高:
一.基本法要求:
(1)代码快速写?_但不失风?br>(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
(2)保证正确性和高效? poj3434
?囄?
(1)度限制最生成树(wi)和第K最短\. (poj1639)
(2)最短\,最生成树(wi),二分?最大流问题的相关理?主要是模型徏立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
(3)最优比率生成树(wi). (poj2728)
(4)最树(wi)形图(poj3164)
(5)ơ小生成?
(6)无向图、有向图的最环
?数据l构.
(1)trie囄建立和应? (poj2778)
(2)LCA和RMQ问题(LCA(最q公q先问? 有离U算?q查?dfs) ?在线法
(RMQ+dfs)).(poj1330)
(3)双端队列和它的应?l护一个单调的队列,常常在动态规划中起到优化状态{U?br>?br>目的). (poj2823)
(4)左偏?可合q堆).
(5)后缀?非常有用的数据结?也是赛区考题的热?.
(poj3415,poj3294)
?搜烦
(1)较麻烦的搜烦题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
(2)q搜的状态优?利用Mq制数存储状态、{化ؓ(f)串用hash表判重、按位压~存?br>状态、双向广搜、A*法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
(3)深搜的优?量用位q算、一定要加剪枝、函数参数尽可能、层C易过?br>、可以考虑双向搜烦或者是轮换搜烦、IDA*法. (poj3131,poj2870,poj2286)
?动态规?br>(1)需要用数据l构优化的动态规?
(poj2754,poj3378,poj3017)
(2)四边形不{式理论.
(3)较难的状态DP(poj3133)
?数学
(1)l合数学.
1.MoBius反演(poj2888,poj2154)
2.偏序关系理论.
(2)博奕?
1.极大极小q程(poj3317,poj1085)
2.Nim问题.
?计算几何?
(1)半^面求?poj3384,poj2540)
(2)可视囄建立(poj2966)
(3)炚w最圆覆盖.
(4)对踵?poj2079)
?l合?
(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263


_飞寒 2010-12-20 21:20 发表评论
]]> 뾫ƷþɪӰ | þþƷˬӰ| պһþ99| 99þ㽶߿| պһþ| þþþþAv뾫Ʒר| ޹Ʒһþ| ޹˾þۺҰ| ھƷþþþþ99 | vĻþ| ޹ŷۺ997þ| 99þþƷһ| ھƷþۺ88| ҹþþþƷӰԺ| һþaþþƷۺ㽶 | ƷŮ߳׾þþ| ƷɫۺϾþ| ѾþþƷ99reѾy| 91Ʒ91þþþþ| þþƷһ99| þþƷ޸| 99þó˹Ʒ| þþþþþòҰ¸߳ | 91Ʒ9lþþþ| 2021¾þþӾƷ| ഺþ| ղƷaëƬþ| ˾Ʒþ| þþžžþƷֱ| þó18վ| þ91Ʒ91þС| ɫվþþþۺywww| ݺۺϾþۺ88| 99ȳ˾ƷȾþ| ɫúݺݾþۺ| 㽶þAһ| þþƷһӰ| þùƷһ| ۺһ˾þþƷ| þùƵ| 99þֻƷ|