论、图论、几何（很多时候是计算几何）、字符串和数据结构。和人工智能相关的内容在某些比赛中也很会出现。不论问题的类别，解决问题的过程都可以大致地分为两大步骤：构思一个算法，以及使用一个编程语言来实现算法（允许使用的语言每个竞赛都会不同，主要以C++，Java，Pascal等为主，但是IT企业的竞赛大多会使用该企业的常用语言）。大多数竞赛中，选手只应该为每一题编写一个源程序，这个源程序的系统调用会受到限制。一般创建新进程，访问网络，操作无关文件等等都是不允许的。一般情况下，选手只能使用他/她所使用的语言