CSP初赛复习
计算机的基础知识 计算机的发展 代份 年份 电子元件 第一代计算机 1946 - 1958 电子管 第二代计算机 1959 - 1964 晶体管 第三代计算机 1965 - 1970 集成电路 第四代计算机 1970 - 至今 (超)大规模集成电路 第一台电子计算机:ENIAC。 第一台具有存储功能的计算机:EDVAC。 计算机发展史上的杰出人物 冯·诺伊曼:存储结构、冯·诺伊曼架构 艾伦·图灵:图灵测试、图灵机。 克劳德·香农:信息论。 马文·明斯基、约翰·麦卡锡:对人工智能的杰出贡献。 阿达·洛芙莱斯:计算机程序的创始人。 计算机相关奖项 图灵奖 计算机界的最高奖项。 由美国计算机协会 ACM 于 1966...
双指针&双向搜索
双指针 基本介绍 双指针(Two-pointer),即同时维护两个指向数组下标或者链表位置的指针,并实时控制它们同向或相向移动,以达到大幅提升枚举的效率、寻找满足条件的极长段等目的。 双指针是一个相当宽泛的思想,在许多算法中也有应用。快速排序算法便是通过两个相向移动的指针,实现了按元素与基准元素的比较结果划分数组,从而得以分别向两边递归,常数远小于朴素算法。 ### 【模板】数对计数问题 #### 题目描述 给定长度为 n 的严格增序列 {an} 和整数 m,求序列中有多少对不同的数相加和超过 m。 #### 数据范围 对于 100% 的数据,1 ≤ n ≤ 106,|ai|, |m| ≤ 109 #### 朴素算法 直接用两重循环枚举 i, j (1 ≤ i < j ≤ n),统计有多少对 ai + aj > m。 时间复杂度 O(n2)。...
