原创 【51nod 1439】互斥對【容斥原理】

題意 給定一個長度爲 nnn 的數組,a[1],a[2],...,a[n]a[1],a[2],...,a[n]a[1],a[2],...,a[n]。維護一個集合,一開始集合爲空。一共有 qqq 次操作,每次操作給定一個下標 pos

原创 整體二分算法完整總結

整體二分概述 一、適用問題 整體二分,即對所有的查詢進行一個整體的二分答案,需要數據結構題滿足以下性質。 詢問的答案具有可二分性 修改對判定答案的貢獻相對獨立,修改之間互不影響效果 修改如果對判定答案有貢獻,則貢獻爲一確定的與判

原创 樹上啓發式合併算法概述及習題

樹上啓發式合併概述 一、適用問題 樹上啓發式合併作爲樹上問題三劍客之一(點分治、長鏈剖分),以其優雅的暴力而聞名於江湖之中。 通常來說,如果一個問題可以被劃分爲一個個子樹進行求解的問題,而且各個子兒子對答案的貢獻容易添加與刪除,就

原创 莫隊算法完整總結(普通莫隊、帶修莫隊、樹上莫隊、回滾莫隊)

普通莫隊 一、適用問題 莫隊算法是一種離線算法,用分塊去優化暴力,不包含修改的話,複雜度爲 O(nn+mn)O(n\sqrt n+m\sqrt n)O(nn​+mn​),nnn 爲序列長度,mmm 爲操作總數。 二、算法實現 莫隊

原创 【2018徐州ICPC Gym-102012 M】Rikka with Illuminations【計算幾何】

題意: 給定一個 nnn 個點的凸包,再給出 mmm 個光照點,每個光照點的照射範圍爲 360360360 度,問最少選取幾個光照點可以照亮整個凸包,要求輸出方案,保證不會出現一個光照點位於凸包的延長線上,共 200200200

原创 【HDU 5869】Different GCD Subarray Query【區間不同 gcd 個數】

題意: 給出 nnn 個數字,一共 qqq 次查詢,每次詢問一個 lll、rrr,查詢區間 [l,r][l,r][l,r] 中有多少個不同的 gcdgcdgcd,其中一個子區間代表一個 gcdgcdgcd。(1≤n,q≤105,1

原创 數位DP算法概述及習題

一、數位DP概述 通常來說,數位 dpdpdp 問題都是通過 dfsdfsdfs 解決的,因爲 dfsdfsdfs 的做法更容易理解,也能一定地簡化代碼。 對於 dfsdfsdfs 求解的數位 dpdpdp 問題,其中設置的狀態爲

原创 網絡流習題集合

網絡流習題 1. 餐巾計劃問題 題意: 一共 nnn 天,餐廳每天需要 rir_iri​ 塊餐巾。餐廳每天可以花 ppp 購買一塊新餐巾;或者花 fff 將髒餐巾送到快洗部,mmm 天后洗好;或者花 sss 將髒餐巾送到慢洗部,n

原创 NP、P、NPC、NP-hard 概念辨析

NP 問題 定義: 可以在多項式時間裏驗證一個解的問題。 延伸: P\text{P}P 問題屬於 NP\text{NP}NP 問題,但 P\text{P}P 問題是否等於 NP\text{NP}NP 問題,目前仍然是一個世界難題。

原创 【Gym - 101397D】Acute Triangles【銳角三角形個數】

題意: 給出 nnn 個點,先從中任意選取三個點,使得這三個點爲一個銳角三角形,問一共有多少個銳角三角形。(3≤n≤2000)(3\leq n\leq 2000)(3≤n≤2000) 思路: 正難則反,很明顯正向思考這題難度非常

原创 【AtCoder-2164 C】Rabbit Exercise AtCoder【差分找規律+倍增】

題意: 一共 nnn 個點,每個點都有自己的初始位置 xix_ixi​,一共有 MMM 次操作,每次操作給出一個 pospospos,則 a[pos]=a[pos+1]+a[pos−1]−2∗a[pos]a[pos]=a[pos+

原创 計算機中十類指令尋址方式總結

數據尋址方式 數據尋址有多種,需要在指令中明確指出採用哪一種尋址方式,可以專門設置一個尋址方式特徵字段,或納入地址碼中。 形式地址 AAA: 指令字中的地址 有效地址 EAEAEA: 操作數的真實地址 有效地址由形式地址根據尋址

原创 迴文自動機算法+馬拉車算法概述及習題【迴文串系列問題】

ManacherManacherManacher 概述 一、適用問題 ManacherManacherManacher 算法主要解決的是給出一個字符串,O(n)O(n)O(n) 複雜度下求出以字符串中任意一個節點爲中心所能擴展的最

原创 【Gym-101889 D】Daunting device【分塊】

題意: 長度爲 nnn 的序列,每個點都有一個顏色,一共有 CCC 個顏色,支持兩種操作,第一種給出 l r xl\ r\ xl r x,將區間 [l,r][l,r][l,r] 全部染成 xxx,第二種給出一個 xxx,詢問 xx

原创 動手設計 CPU(二)—— 微程序控制的運算器

一、架構設計 在正式開始設計 CPU 之前,我們需要設計兩個架構來熟悉一下整個環境以及完成一些小的功能部件。兩個架構分別是: 微程序控制的運算器設計 微程序控制的存儲器讀寫系統設計 本篇文章主要探討如何設計第一個架構。 下圖即