class 1

何为acm,好玩的游戏?or 痛苦的负担?

根据百度结果,acm国际大学生 程序设计竞赛,是由美国计算机协会主办的年度竞赛,旨在展示大学生创新能力、团队精神何在压力下编写程序、分析和解决问题能力

具体: 是三个人组队,一场比赛5个小时,通常有10~13个问题,三人合力解决,比赛是三人只能使用一台电脑。

我们先来看题目的组成

一般来说,10多道题目都做出来是不太现实的

他有难有易,且不按难度排序,而正常比赛中,比拼的不仅仅是会不会做,而是会做的题做的快,且不能出错。

规则如下: 比赛期间,每队使用1台电脑需要在5个小时内使用C/C++JavaPython中的一种编写程序解决7到13个问题。程序完成之后提交评测机运行,运行的结果会判定为正确或错误两种并及时通知参赛队。而且有趣的是每队在正确完成一题后,组织者将在其位置上升起一只代表该题颜色的气球,每道题目第一支解决掉它的队还会额外获得一个“FIRST PROBLEM SOLVED”的气球。

最后的获胜者为正确解答题目最多且总用时最少的队伍。每道试题用时将从竞赛开始到试题解答被判定为正确为止,其间每一次提交运行结果被判错误的话将被加罚20分钟时间,未正确解答的试题不记时。

在绝大部分的比赛中,快速的把前几题做对是非常有必要的,在水平差不多的情况下,比拼的就是时间。

需要学习的内容

语法部分

  1. 变量、表达式与顺序语句
  2. scanf/printf语法及判断语句
  3. 循环语句
  4. 数组
  5. 字符串
  6. 函数
  7. 结构体、类、指针与引用
  8. STL容器、位运算与常用库函数 这些内容,不需要智商,只需要多做水题,把语法的使用趋于熟练、自然即可,而练习完这些,可能就能把前面几道水题过了。

基础算法部分

基础算法

排序 二分 高精度 前缀和与差分 双指针算法 位运算 离散化 区间合并

数据结构

链表与邻接表:树与图的存储 栈与队列:单调队列、单调栈 kmp Trie 并查集 堆 Hash表

搜索与图论

DFS与BFS 树与图的遍历:拓扑排序 最短路 最小生成树 二分图:染色法、匈牙利算法

数学知识

质数 约数 欧拉函数 快速幂 扩展欧几里得算法 中国剩余定理 高斯消元 组合计数 容斥原理 简单博弈论

动态规划(重中之重,分水岭)

背包问题 线性DP 区间DP 计数类DP 数位统计DP 状态压缩DP 树形DP 记忆化搜索 贪心

时空复杂度分析

基本上就是这些内容。 其实并不是很多 而且很多东西基本没有考过。