如果想提高编程能力,最重要的就是多练多学,现在网络上提供了大量的习题库,可以很方便的练习编程。
ACM/ICPC题库(支持c,c++,java,pascal):
台州学院acm :有不少习题使用中文描述,分类清晰,适合初学者。题目分类 可以作为参考。sdut acm 也有类似题目
lucky猫的ACM园地 :acm试题的中文翻译,其题目编号与uva的编号一致。其网站下方的几个友情链接也很棒
UVA :ACM的大本营,ACM题目难度分级列表 可以作为参考。.
sagit的acm答案 : 部分习题的acm答案,其个人网站 还有c和c++教程
POJ ,TOJ ,ZOJ ,HDOJ : 国内的几个重要的acm题库,poj算法分类1 ,poj算法分类2 可以作为参考
编程啦 :北航的acm题库
其他编程题库:
SPOJ :很有名的题库,支持c,c++,ada, java,haskell, scheme,common lisp, D,erlang, fortran,c#, f#,icon, lua,ocaml pascal,perl,php,prolog,ruby,smalltalk,tcl等众多编程语言,很棒的题库。熟悉多门语言的可以尝试不同的思维方式来解题
Poject Euler : 不需要给出程序,只要给出结果即可,很有趣的网站。
TopCoder :网站上有一些教程 很棒,也可以参与竞赛
c/c++ programming challenge
PythonChanllge
Google code jam
LessThanDot
USACO problems
RubyQuiz
Timus Online Judge
Codekawa
Programming praxis
EI judge
Code golf
C puzzle
Riddles and mathematical puzzles
From puzzles to programming
Coding bat (java and python practice)
99 Problems(haskell prolog lisp perl ocaml )
MathChallenge :数学题库,不需要编程,可以用来锻炼自己的数学思维能力,其友情链接 中有很多很棒的网站
Project Eureka :各种问题,数学、编程乃至逻辑等等。
Rankk :需注册才能看到题目,很多问题与编程无关
参考书目:
《算法竞赛入门经典》 :关于acm竞赛的入门指南。对应习题在uva 上可以找到。
网络教程或工具
台湾师范大学ACM算法入门
algorithmist 算法相关内容,很全
uva toolkit 可以在线搜索不同类型题目,输入测试数据并输出结果