原创 烏龜棋 【線性DP】

傳送門 老年選手,看似不難的題目,居然花了2小時纔想出來。 現在正正經經地寫題解吧。 注意(輸入數據保證到達終點時剛好用光 M 張爬行卡片) 這說明所有卡牌裏面的格子數加起來恰好等於總的格子數。 爬行的卡片的格子數不超過4(我就是

原创 複習板子

本以爲自己要和ACM說再見了,自己也開始新生活了。 人生如夢亦似幻,朝如晨露暮如霞。 還是繼續吧 ST 算法 #include<bits/stdc++.h> using namespace std; const int N=1

原创 POJ 1077 Eight【A*】

傳送門 這是第2次寫八數碼了 上次是普通BFS 這次當然要優秀一點了 我們先進行判斷可接性,可以用逆序對判斷是否可解,有解用A* A*: 每次移動能把一個數字與空格交換,這樣至多把一個數字向它在的目標移動一步,即使每一步都是有意義

原创 POJ 2689 Prime Distance 【線性篩法】

傳送門 思路: 對於[L,R]範圍內的任意一個合數,其最小質因數都會小於R\sqrt RR​,所以可以先將[2,50000]範圍內的質數篩選出來,然後給定一個[L,R],就用篩選出來的質數去篩[L,R]的合數,篩完合數,剩下的就是

原创 BZOJ 1053: [HAOI2007]反素數ant【約數】【質因數分解】

傳送門 1~N 中最大的反質數,就是1~N中約數個數最多的數中最小的一個.因爲如果不是最小的那一個,必然會出現g(x)==g(i) 1~N中任何數的不同質因子都不會超過10個,因爲2∗3∗5∗7∗11∗13∗17∗19∗23∗29

原创 P1072 Hankson 的趣味題(NOIP 2009)【最大公約數+線性篩】

傳送門 思路: 從lcm(b,x)=d可知,x一定是d的約數。於是我們可以得到一個樸素算法,用試除法求出d的所有約數,逐一判斷是否滿足這兩個條件。這樣子能過90%的數據。。。 爲了避免試除法不能整除耗費的時間,我們可以先預處理1

原创 BZOJ 1257:[CQOI 2007]餘數之和【推導】

傳送門 注意到Kmodi=k−⌊k/i⌋∗iKmodi=k-\lfloor{k/i}\rfloor*iKmodi=k−⌊k/i⌋∗i故可以轉化爲n∗k−∑i=1n⌊k/i⌋∗in*k-\sum^n_{i=1}\lfloor{k/i

原创 《算法與數據結構實踐專題》 任務書及題目彙總【醒目】【業界良心】(全部題解)

寫在前面: 數據結構什麼的早就不是問題,就當自己鞏固一下基礎吧,後期同學們也要一個一個細節問啊問怎麼搞,任務本來就要求寫一個就好了,鬼知道我的學號對應的是最簡單的,無趣,那麼還是全部做一遍吧,供同學們參考一些細節呀,千萬要獨立思考

原创 BZOJ 1951: [Sdoi2010]古代豬文 【中國剩餘定理】【lucas定理】

傳送門 思路: 題目的意思就是讓你求q∑d∣nCndmod999911659q^{\sum_{d|n}C_n^d}mod999911659q∑d∣n​Cnd​mod999911659 若q=999911659,則上式結果爲0,否則

原创 POJ 2104 K-th Number 【整體分治+樹狀數組】

傳送門 題目大意:詢問區間第k小的數。 思路: 首先我們可以利用二分答案求得某個區間的第k小的值。 具體來說 假設當前二分的值爲mid 統計序列中有多少個數<=mid 記錄爲cnt 如果k<=cnt 則說明第K小的值一定∈[l,

原创 帶Treap的BST樹 【模板】

二叉查找樹模板 在隨機數據中,BST一次操作複雜度爲O(logN)O(logN)O(logN)。然而BST樹很容易退化。 例如在BST中依次插入一個有序的序列,將會得到一條鏈,每次操作的複雜度爲O(N)O(N)O(N) 因此我們幾

原创 BZOJ 4004: [JLOI2015]裝備購買【高斯消元+線性空間】

傳送門 思路: 把裝備屬性及其價格看作係數矩陣,用高斯消元求出該矩陣的秩,就能得到能買下的裝備的最多的數量 對於求最少的錢,我們只需要在高斯消元的過程中,使用貪心的策略,對於每個主元XiX_iXi​,在前i−1i-1i−1列爲0,

原创 洛谷P1313 計算係數 【組合數+逆元】

傳送門 對於初接觸數論的我來說可能棘手,不過現在是逼題了。 對於10007是質數,所以1~1000的整數都存在膜10007的乘法逆元。 code: #include<bits/stdc++.h> using namespace s

原创 HDOJ 3949 XOR 【高斯消元+異或空間】

傳送門 思路: 又是異或空間! 高斯消元找到一組線性無關組,消出對角矩陣後,對於k二進制拆分,對於每列只有有一個1的. 顯然可以用k的二進制數直接異或得到第k大,對於一列由多個1的,由於二進制性質,由於2k+12^{k+1}2k+

原创 P1196 [NOI2002]銀河英雄傳說 【帶權並查集】

傳送門 思路: 在考慮路徑壓縮的情況下,我們建立一個數組d,d[x]記錄戰艦x與fa[x]之間的邊的權值。在路徑壓縮把x指向樹根的同時,我們把d[x]更新爲x到樹根路徑的所有邊權之和。 根據題意,集合y中的全部戰艦在集合x之前,因