acm题都是追求效率的,java不用考虑
c必会,c++可选(c++可以用stl库)
英语好可以迅速了解题意,算是小小的优势吧
注重逻辑思维能力,很多大牛都不是计算机专业的,而是数学专业的
需要灵活运用 数据结构、算法(排序、剪枝、分治法、动态规划、贪心……),楼上说的《算法导论》很经典。
平时多上OJ做题
北大的acm题库http://acm.pku.edu.cn/JudgeOnline/
浙大的acm题库http://acm.zju.edu.cn/onlinejudge/
也不是非要参加学校的比赛,网上也有很多比赛
比如,Google的Code Jam、百度的Astar、网易的有道难题编程挑战赛……
不过,想拿名次确实很难,兴趣+天赋是关键