原创 C 語言中指針的常規操作

前言 雖然在算法競賽中很少用到指針,因爲指針一般都有其它結構可以代替,並且指針很容易出錯且難以發覺;不過在考研中似乎指針是繞不開的,並且在底層設計中 C 語言的指針確實有着速度優勢,因此本文將整理有關指針的常規操作,包括指針的基本

原创 AC自動機題集

Keywords Search 題意描述 原題來自:HDU 2222 給定 n 個長度不超過 50 的由小寫英文字母組成的單詞準備查詢,以及一篇長爲 m 的文章,問:文中出現了多少個待查詢的單詞。多組數據。 解題思路 模板題 代碼

原创 2019CSP-J普及組複賽題解

A.數字遊戲 題意描述 小 K 同學向小 P 同學發送了一個長度爲 8 的 01 字符串來玩數字遊戲,小 P 同學想 要知道字符串中究竟有多少個 1。   注意:01 字符串爲每一個字符是 0 或者 1 的字符串,如“101”(不

原创 STL之map容器速率測試

摘要 不止一次在使用 map 時被卡時限,map 是 c++ 的 STL 中一個常用且方便的容器,其是基於樹來實現的,它的插入與查找效率實際上更接近O(log N )(N爲插入的元素個數)。當然在 c++ 的 STL 中還有用哈希

原创 樹狀數組題集

書本配套OJ 我校OJ 樹狀數組知識點: 單點修改,區間求和,O(logN)。 區間修改,區間求和,O(logN)。 二維樹狀數組單點修改,子矩陣求和,時間複雜度O(logN * logN),空間O(N^2)。 與線段樹相比功

原创 CodeForce #600(Div2) 解題報告

A. Single Push 題意簡述: 給定兩個序列 a 和 b,要求從序列 a 中選出連續的一段[l , r] ,對這段上的每個位置+k(k >= 0),試問只操作一次能否使得序列 a 變爲序列 b 。 解題思路: 由於只能操

原创 樹鏈剖分題集

樹鏈剖分常用於處理靜態樹上操作,效率很高,寫起來也就是固定的輕重邊拆分+線段樹,但是代碼一般都是100行+,容易出錯。 本題集中的樹鏈剖分練習題,在解決思路上沒什麼難點,主要是如何設計線段樹以及如何更新+詢問,也就是說要想好怎麼維

原创 最大流筆記

摘要 正如可以通過將道路交通圖模型化爲有向圖來找到從一個城市到另一個城市之間的最短路,我們也可以將一個有向圖看作一個“流網絡”,並使用它來回答關於物料流動方面的問題。這種流網絡可以用來建模很多實際問題,包括液體在管道中的流動、裝配

原创 一維RMQ問題題集

書本配套OJ 本校OJ ST表使用說明: 常用於離線問題,或當作輔助數據結構,查詢時間非常優秀,O(1) 二維st表也很好實現,不過本題集中未涉及 st表內也可以維護的是下標而非值,在某些時候很有用 數列區間最大值 題意簡述

原创 強連通分量題集

一本通OJ 靈動OJ A.受歡迎的牛(popular) 題意描述 原題來自:USACO 2003 Fall 每一頭牛的願望就是變成一頭最受歡迎的牛。現在有 N 頭牛,給你 M 對整數 (A,B),表示牛 A 認爲牛 B 受歡迎。這