• Tidak ada hasil yang ditemukan

建國中學2012 年資訊能力競賽培訓講義

N/A
N/A
Protected

Academic year: 2023

Membagikan "建國中學2012 年資訊能力競賽培訓講義"

Copied!
124
0
0

Teks penuh

作戰計劃

主線任務

支線任務

競賽資源簡介

演算法概論

  • 演算法
  • 排序與二分搜
  • 雜項
  • Exercise
  • 鏈結串列 (Linked List)
  • 堆疊 (Stack)
  • 佇列 (Queue)
  • 雜湊 (Hash)

如果输入的数字序列C不大,我们可以直接统计每个数字出现的次数。假设值都是0到C-1之间的整数。我们想要搜索索引值或按排序顺序最接近的值。我们可以每次取平均值并将搜索范围减半,得到复杂度为O(lgN)的算法。

Disjoint Sets

Path Compression

Union By Rank

Exercise

Binary Tree

  • 定義
  • 二元樹的儲存
  • 二元樹的走訪
  • Binary search tree

二叉搜索树(Binary Search Tree)是一种特殊的二叉树,它满足以下要求:对于任意节点v,其左子树中任意节点的键值均小于v的键值和其左子树中任意节点的键值。右子树小于键大于键 v 的值。

Heap

Binary Heap

与插入元素类似,我们直接替换树的根和最后一个元素,并将新的树根向下调整。

C++ Standard Library

  • 簡介
  • String
  • IOStream
  • STL Container
  • STL Algorithm
  • 枚舉
  • 狀態空間搜索
  • DFS 與 BFS
  • BiBFS
  • IDDFS
  • A*
  • IDA*
  • Exercise

在 O(1) 时间内获取最大元素的值,并在 O(lgN) 时间内删除最大元素。

Greedy

Greedy Method (貪婪法)

Exercise

给定一个 N 个数字的序列,找到一种方法,使分割成 K 个段后每个段的最大和最小化。有一条大路,路上有N个城镇,每个城镇都有一些鱼。现在我们要运输这些鱼,以便每个城市都有Y吨或更多的鱼。但每运输一公里,就有一吨鱼被抢走。我想问一下K的最大值是多少? 。

Divide and Conquer

一些重要的遞迴式

Exercise

Dynamic Programming

  • 實作方式
  • Exercise-基本 DP
  • Exercise-經典 DP
  • DP on tree
  • 需要想一下的 DP
  • 狀態壓縮 DP
  • 質數
  • 輾轉相除法
  • 同餘
  • Exercise

N 个素数可被 N 整除。如果它们都不可整除,则说明 N 是质数。直到N。剩下的没有被删除的数字都是质数。

矩陣

  • n 元一次方程組
  • 高斯消去法
  • 矩陣
  • Exercise

一个矩阵乘以一个系数r:每个元素都乘以系数r,右边可以乘一个单位矩阵I(反正不影响):。

組合

  • 基礎組合
  • 遞迴式
  • 卡特蘭數
  • Exercise

以下情况中的方法数都是Cattleya数 Cn 正n边形中,将多边形划分为三角形的方法数。

計算幾何

  • 向量
  • 極座標
  • 線段相交
  • 多邊形面積
  • 判斷點在多邊形之內外
  • 凸包
  • 掃描線 (Sweep Line)
  • 判斷線段相交
  • 旋轉卡尺 (Rotating Caliper)
  • 最遠點對
  • 最小包含圓
  • Exercise
  • 定義
  • 圖的儲存
  • Exercise

请输入图中所有顶点的入度总和 请输入图中所有顶点的入度总和。

子圖與特殊的圖

定義

一些特殊的圖

G 是连通的,但如果删除一条边,G 就会断开。 G 中的任意两个顶点只能通过一条简单路径连接。

Exercise

如果图 G 可以在平面上绘制,并且其边仅在端点处相交,则称 G 是平面图(Planar . Graph)。平面图的边将平面划分为不同的区域,称为面,记为 F。平面图包括著名的欧洲面。

圖的遍歷與時間戳記

深度優先搜索

時間戳記

中的区间,即这个序列为我们提供了一种平滑树的方法。给定DFS的条目时间戳,我们可以知道树T上点v的任何子节点的条目时间戳必须小于v的条目时间戳,并且对于any和vi,如果i,vj是v的后代< k < j,那么vk也必须是v的后代,否则我们进入和退出点v两次,因此DFS条目时间戳恰好是一个合法的序列。

Exercise

連通元件

連通元件

类似地,我们通常讨论无向图中边的双重连通性。我们说两个点 u 和 v 是边的两倍。如果 和 是 如果删除图中的任何边,仍然会有从 u 到 v 的链接或 v 到 u 的路径。双边分量类似于有向图中的强连通分量。它将原始图G中的点集V分割成不同的不重叠的分量V1,V2,…,Vn。从定义可知,图G中的环将在边上属于同一个强连通分量,因此我们也可以减少该点并将其返回到图G'。而E(G')中的边会造成一对不相连的边,称为桥。

Tarjan’s algorithm

如果我们考虑有向图中的强连通元素,我们可以知道,如果DFS树中存在一个点v使得Low(v),那么它是一个点双连通元素,它的交集将是两点。双连接元素。

Exercise

对于下面括号中的公式,我们如何在图上构造一条边? (下图i̸=j) 1.如果所有xi,Øxi不在同一个强连通分量中,是否有确定解?如何找到一套解决方案? 。

圖論上的問題 (I)

歐拉路徑與歐拉迴路

漢米頓路徑與迴路

虽然这个问题乍一看与欧亚路径非常相似,但它只需要遍历所有的点,而不是所有的边。但目前为止还没有好的办法解决这个问题!事实上,这个问题是NP-Complete,目前最好的做法是使用状态压缩DP来达到O(|V|22|V|)的时间复杂度。

Exercise

圖論上的問題 (II)

  • 最小生成樹
  • 單源最短路徑
  • All-Pair Shortest Path
  • Exercise
  • 名詞解釋
  • 匹配問題 (String Matching)

如果图G中存在负环,且最小边权值为wmin,则可以将所有边权值与wmin相加。当然,我们可以为所有点做一条单向最短路径,时间复杂度也很好,但我们将呈现一种简洁的Floyd-Warshall算法。

SA 數組、LCP 定理

  • Doubling Algorithm(倍增算法)
  • Longest Common Prefix (LCP) 定理
  • 後記
  • 塊狀數組
  • 線段樹
  • 二元搜尋樹

线段树是一种可以在区间内快速改变(更新)和查询(查询)值的二叉树。为了更容易理解线段树的结构和操作,我们首先讨论一个简单的问题:通过观察,我们可以发现每个元素最多会被覆盖,因为树的深度是O(lgn)。更改时为 O(lgn) 个分段,因此更改此值最多只会影响 O(lgn) 个分段中的最小值。查询时,由于每层都会被完全覆盖,不超过2段,。

實作

因此,总覆盖率最多为O(lgn)个段,即查询时最多需要检查O(lgn)个段,复杂度也为O(lgn)。如果我们离线处理问题,即我们知道所有的输入数据,那么可以使用线段树代替二叉搜索树,优点是树结构可以完全平衡。方法是出现的数的区间最小值。插入操作将其从序列中弹出,并更新覆盖该点的所有间隔的最小值。删除操作与插入操作类似。

操作

將一段數字加減一個值

將一段數字全部改成一個數

推廣與變形

Binary Indexed Tree

要表示一个区间,可以直接将所有区间的结果跟踪为一个索引值为[1, n]的数组。如果我们总结记录的间隔,我们会得到一个公式。索引值为k的节点所持有的区间为(k−2i,k],i称为k的低位,是二进制表示中的最低位。-零位,lowbit,可以用以下表示公式。

K 維線段樹

應用

離散化 (Discretization)

掃描線 (Sweep Line)

時間戳記 (Time Stamp)

樹上詢問 (Tree Queries)

Exercise

  • 單調隊列優化
  • 四邊形優化
  • 插頭 DP
  • Exercise

而这里我们将讨论一些神奇的优化方法。为了达到一定的单调性,下面我们一一讨论。

其他的主題

  • 最近共同祖先 (LCA)
  • 比率二分搜
  • 迭代
  • 合併演算法
  • Exercise

树的根开始DFS。每次我们输入一个节点时,我们都会将该点添加到序列的末尾,每次我们都会留下一个。 1RMQ问题,如果有的话,可以使用特殊的方法来实现O(N)的时间复杂度。如果您有兴趣,可以自行研究。

Flow & Cut

  • 定義
  • Maximum flow Algorithm
  • Minimum Cost Maximum Flow
  • 最小割
  • 建構模型
  • Exercise

小路。通过这个定理,我们可以找到最大电流,如果我们用 BFS 实现它,我们可以实现 O(V E2) 的时间复杂度。

Gambar

Figure 7.1: 線段樹及其節點之區間

Referensi

Dokumen terkait

如果到最後我決定放棄資料庫中的檔案,自己另外製作一個課程學習成 果的 PDF 檔案,這樣會有甚麼問題嗎?10