都隔了一个月了~~
八月基本上是比赛的——单独做的题较少……套题另外整理。
Augest_18
POJ1324 Hol_dox_Moving
经典搜索题
难点在于状态的Hash,其实算算大小正好够了,所以就简单BFS了。
不过A*快很多(用一次BFS求一个点到目标点的最短路径来设计启发式函数)~~
Augest_19
POJ3514 The Writers' Club
简单BFS
预处理麻烦点
Augest_20
POJ3510 A Tale from the Dark Side of the Moon
传说中的阅读理解题
细节啊细节
快WA死人了
Augest_20
POJ3509 Rotating Rings
简单模拟题
Augest_21
POJ3562 “Roman” corridor
Trie的应用(搜索)
对roman数字建立Trie树! 这个想法太强大了
然后就搜索,用Trie来判断路径合法性
Augest_21
POJ2594 Treasure Exploration
传递闭包+最小路径覆盖
重要的是要联想到是这个东西
Augest_21
POJ3448 Roman Expressions
罗马数字
无聊题,我在写了一个Roman——number的“标程”后交着玩
Augest 24
POJ2086 Land Division Tax
DP+
经典
O(n^3)的DP
做了一上午,一直TLE,后来用C++交才发现任何一个程序都可以1500+msAC!!!!
代码待考证
Augest_24
POJ1419 Graph Coloring
回溯
最大团/最小覆盖点集
可以相互转化的两个模型
得到一个结论:用最小覆盖点集方法来对最大团的补图求解的算法快很多
这个题数据很水,我写了个非常暴力的题目都过了
Augest_28
POJ2647 Doublets
BFS+Trie(在Trie上DFS)
经典
再次见识到好的数据结构(Trie)的强大,这个题我做过一次,原来在WOJ上AC,在POJ得到MLE!!
在Trie上做DFS,这种方法不是第一次见了。。。
Augest_29
POJ2049 Finding Nemo
BFS经典题
对平面进行划分
队伍练习赛题目,结果我用了不熟悉的priority_queue,写反了比较函数,查错用了好久!!!
Augest_29
POJ2056 The Separator in Grid
双向DP
或者BFS/DFS
随便怎么乱搞都可以过——时间复杂度基本不成问题
Augest_30
POJ3375 Network Connection
经典DP优化
N<=2000, M<=100000,O(m*m)的算法容易想到,要优化到O(n*m),
我猜了好久乱搞了个先找到一个最接近的位置,然后向前向后各枚举n+2步DP(ms后面试了下n也可以),
终于过了,这个题想了好久!!
Augest_30
POJ3351 Gerrymandering
NB的DP
太猛的算法了
在shiming413的blog上看到的算法,将O(N^3)的算法优化到O(n^2)!!!
O(n^3)的算法太容易想到,但是优化起来还是不简单的!
思路来自:http://www.cppblog.com/shiming413/archive/2007/08/22/30577.html
Augest 31
POJ3683 Priest John's Busiest Day
2-SAT
少有的要求出分组的2-SAT
算法见赵爽和伍昱的论文
POJ月赛题,看到后非常爽(终于有一道2-SAT分组的题可以验证标程了)
当时我们群P,只有我和sherlock做过2-SAT,想到算法后sherlock(他手速快,这个再正确不过,我晚上写了好一段时间才过,建图啊建图)