[usaco]Programming Contest Problem Types

Programming Contest Problem Types

Hal Burch conducted an analysis over spring break of 1999 and made an amazing discovery: there are only 16 types of programming contest problems! Furthermore, the top several comprise almost 80% of the problems seen at the IOI. Here they are:

  • Dynamic Programming
  • Greedy
  • Complete Search
  • Flood Fill
  • Shortest Path
  • Recursive Search Techniques
  • Minimum Spanning Tree
  • Knapsack
  • Computational Geometry
  • Network Flow
  • Eulerian Path
  • Two-Dimensional Convex Hull
  • BigNums
  • Heuristic Search
  • Approximate Search
  • Ad Hoc Problems

The most challenging problems are Combination Problems which involve a loop (combinations, subsets, etc.) around one of the above algorithms - or even a loop of one algorithm with another inside it. These seem extraordinarily tricky to get right, even though conceptually they are ``obvious''.

If you can master solving just 40% of these problem types, you can almost guarantee a silver medal at the IOI. Mastering 80% moves you into the gold range almost for sure. Of course, `mastery' is a tough nut to crack! We'll be supplying a plethora of problems so that you can hone your skills in the quest for international fame.

Hal Burch通过在1999年春季的分析得出了这样的结论,竞赛的程序设计一般只有16种类型,它们分别是:

动态规划

贪婪法

枚举搜索

标号法(染色法)

最短路径

最小生成树

背包问题

计算机图形问题

网络流

欧拉回路

二维凸包问题

大数问题

启发式搜索

近似搜索

其他题

最困难的是在循环中嵌套以上算法或综合应用以上算法,甚至循环中嵌套以上算法的综合应用。即使你将概念了解的很清楚,做对这些问题也很难。

你只需要完全张望仅仅以上16种类型的40%,你就有在IOI中夺银的实力。掌握80%你几乎可以确定将一块金牌收入囊中。当然,让你掌握这些算法不是我们的最终目的,我们会提供给你更多的练习充当你的磨刀石,磨厉你的竞赛技能。

posted @ 2011-09-28 15:05  Mose  阅读(292)  评论(0编辑  收藏  举报