- 在线时间
- 0 小时
- 最后登录
- 2010-1-23
- 注册时间
- 2010-1-23
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 27 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 12
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 7
- 主题
- 0
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   7.37% 该用户从未签到
|
一位高手对我的建议:& o: q" q, a+ N$ z0 d5 g$ n8 k
$ x1 }/ n- e/ c! e+ | 一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的" }: [2 P3 \3 d. n1 p' K6 ^
,主要时间是花在思考算法上,不是花在写程序与debug上。 % X' h/ |+ f) n6 u) Q3 ]
下面给个计划你练练:! R# C6 J A. p
8 H( s% J. ]) G# p" Z- S
第一阶段:, ~7 |8 p) k5 h9 ~% R( S
练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,
) y1 {9 n( W1 L8 `因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打
9 @- R/ G5 L# A. S1 \1 K) S8 L出来.
7 T" Y$ y" S8 b- }0 t5 z( [0 H 1.最短路(Floyd、Dijstra,BellmanFord) $ l j+ F# M2 m5 ~( c* R# D0 ^, ^
2.最小生成树(先写个prim,kruscal要用并查集,不好写)
$ Q) J2 ?/ K ~) l- H 3.大数(高精度)加减乘除 & A- j C$ t. a3 X0 Z6 x: H2 I
4.二分查找. (代码可在五行以内)
b( a0 x% e3 Z5 @" W4 R 5.叉乘、判线段相交、然后写个凸包.
1 D; F7 D K' j6 F 6.BFS、DFS,同时熟练hash表(要熟,要灵活,代码要简) + L7 d* _ d4 D' P
7.数学上的有:辗转相除(两行内),线段交点、多角形面积公式.
1 T) z, L( K0 t/ j1 Y2 \ 8. 调用系统的qsort, 技巧很多,慢慢掌握. 2 ]5 R8 A* B) W( i$ C
9. 任意进制间的转换
) V: M9 c9 }9 b2 i! f. m8 U/ ?
0 @ }# Q! G+ c1 Y8 J3 J3 c! J4 k
第二阶段:- B z- d( ^3 {( h+ r3 j
练习复杂一点,但也较常用的算法。
& O6 ]+ C3 b# g7 ]+ c如: 6 h/ P$ K7 d' K; i3 B- d6 {2 ?5 t
1. 二分图匹配(匈牙利),最小路径覆盖
5 Y! D- ]; E6 k$ h 2. 网络流,最小费用流。
' ^3 q8 f0 Y- c' G% m4 t! X. l( V7 ~ 3. 线段树. & t- O1 O. w) O: F8 ]
4. 并查集。
! F2 A2 ^( U6 o1 K 5. 熟悉动态规划的各个典型:LCS、最长递增子串、三角剖分、记忆化dp
% w/ I9 Y' s. P1 D) Z- X) ? 6.博弈类算法。博弈树,二进制法等。 0 _4 j' W9 \9 s/ h7 H) e. I; c+ V
7.最大团,最大独立集。
3 y: R, X. R) H0 S& d 8.判断点在多边形内。 / O; {9 K" I; L+ c+ B* @% I K N
9. 差分约束系统. 7 ?' q2 v* C6 W
10. 双向广度搜索、A*算法,最小耗散优先.
4 @7 M8 B* {7 \% l3 z6 w3 C/ @ X: K' G- t- E1 {6 r# }+ y
% p' y T" i! q$ A, [# L
第三阶段:1 n9 L* q, t3 B* P; K+ o+ a
前两个阶段是打基础,第三阶段是锻炼在比赛中可以快速建立模型、想新算法+ O* u7 r, h$ a' S2 n, B
。这就要平时多做做综合的题型了。
, n% o7 B4 t$ a* b9 Z: H5 }' t$ R/ t 1. 把oibh上的论文看看(大概几百篇的,我只看了一点点,呵呵)。
- V& s6 g7 D* D" N 2. 平时扫扫zoj上的难题啦,别老做那些不用想的题.(中大acm的版主经常说我挑简单的来
! P* ^* Y/ C! n' g做:-P ) 1 y( G' t- h* i/ K+ y/ O7 g& ~
3. 多参加网上的比赛,感受一下比赛的气氛,评估自己的实力.
# A! @4 b/ P8 A0 a6 Y S 4. 一道题不要过了就算,问一下人,有更好的算法也打一下。 % b3 j. M2 e2 @
5. 做过的题要记好 :-) |
|