原创 洛谷3379最近公共祖先模板(dfs序)

如題,給定一棵有根多叉樹,請求出指定兩個點直接最近的公共祖先。輸入輸出格式輸入格式:第一行包含三個正整數N、M、S,分別表示樹的結點個數、詢問的個數和樹根結點的序號。接下來N-1行每行包含兩個正整數x、y,表示x結點和y結點之間有一條直接

原创 1082同餘方程

剛學數論入門,做到模板題練練題目描述求關於 x 的同餘方程 ax ≡ 1 (mod b)的最小正整數解。輸入輸出格式輸入格式:輸入只有一行,包含兩個正整數 a, b,用一個空格隔開。輸出格式:輸出只有一行,包含一個正整數 x,即最小正整數

原创 空中樓閣 4.14

題面:話說Z4陰差陽錯地來到了神祕島。不久,他們發現,這是一個由n個小島和一箇中心島組成的羣島,羣島之間有m座橋。令他們感到驚訝的是,這些橋並不是固定不變的,經較長時間的觀察,發現它們會隨時間作週期性的變化(即橋的兩端會不斷更換)。 立方

原创 祖孫詢問4.11

題目描述已知一棵 n 個節點的有根樹。有 m 個詢問。每個詢問給出了一對節點的編號 x 和 y,詢問 x 與 y 的祖孫關係。輸入輸出格式輸入格式:輸入第一行包括一個整數 n 表示節點個數。接下來 n 行每行一對整數對 a 和 b 表示

原创 比賽4.11

題目描述有兩個隊伍A和B,每個隊伍都有n個人。這兩支隊伍之間進行n場1對1比賽,每一場都是由A中的一個選手與B中的一個選手對抗。同一個人不會參加多場比賽,每個人的對手都是隨機而等概率的。例如A隊有A1和A2兩個人,B隊有B1和B2兩個人,

原创 洛谷1162機器人搬重物

題目描述機器人移動學會(RMI)現在正嘗試用機器人搬運物品。機器人的形狀是一個直徑1.6米的球。在試驗階段,機器人被用於在一個儲藏室中搬運貨物。儲藏室是一個N*M的網格,有些格子爲不可移動的障礙。機器人的中心總是在格點上,當然,機器人必須

原创 費馬小定理求逆元

逆元:已知P爲質數,且gcd(A,P)==1,  A*B在同模P的情況下與1相等 求出B的值即 A*B=1(在mod P的條件下)所以乘B即乘以A^-1 ,B就是A的逆元費馬小定理:P爲質數時且gcd(A,P)==1,則A^(P-1)=1

原创 EX_GCD

先來小力推導一波EX_GCD(1) : a*x1+b*y1=gcd(a,b)  b*x2+(a%b)*y2=gcd(b,a%b)可得(2) : a*x1+b*y1=b*x2+(a%b)*y2因爲 a%b=a-(a/b)*b在得(3) :

原创 線性篩和埃氏篩的用法及應用

埃氏篩 我的理解:每次找到一個質數,就篩掉所有他的倍數,這樣的話同一個數可能被篩掉多次,但是埃氏篩仍然有十分優越的複雜度代碼:inline void get_prime(){ bool limit[N]; limit[0]=limit

原创 拼圖 4.14

這個拼圖遊戲要求將一些圖形拼成一個正方形,圖形的個數從1到5。如下圖所示,圖形個數是4。圖形不能旋轉,拼的時候不能重疊,拼完後的正方形裏面不能有空隙。所有給定的圖形都要使用。左面的圖表示這樣拼不行,右面是一個成功的拼法。現在,@潘帕斯雄鷹

原创 文件排版4.14

寫電子郵件是有趣的,但不幸的是經常寫不好看,主要是因爲所有的行不一樣長,你的上司想要發排版精美的電子郵件,你的任務是爲他編寫一個電子郵件排版程序。完成這個任務最簡單的辦法是在太短的行中的單詞之間插入空格,但這並不是最好的方法,考慮如下例子

原创 高級樹狀數組——區間修改區間查詢、二維樹狀數組

“高級”數據結構——樹狀數組!※本文一切代碼未經編譯,不保證正確性,如發現問題,歡迎指正!1. 單點修改 + 區間查詢最簡單的樹狀數組就是這樣的:void add(int p, int x){ //給位置p增加x while(p

原创 deque容器詳解

Deque 容器deque容器是C++標準模版庫(STL,Standard Template Library)中的部分內容。deque容器類與vector類似,支持隨機訪問和快速插入刪除,它在容器中某一位置上的操作所花費的是線性時間。與v

原创 洛谷1637 三元上升子序列

題目描述Erwin最近對一種叫"thair"的東西巨感興趣。。。在含有n個整數的序列a1,a2......an中,三個數被稱作"thair"當且僅當i<j<k且ai<aj<ak求一個序列中"thair"的個數。輸入輸出格式輸入格式:開始一

原创 搜索專題(練習題)

T1題面首先我們很容易發現一個操作序列是否合法與操作序列的順序是無關的,選定操作之後加上階乘即可。我們從小到大dfs,對於第i次操作我們把序列分成2^(n-i)段,每段長度2^i。我們(用check函數)找到序列中不是連續遞增的段,如果這