原创 NOIP專題複習(二) 八皇后與各種優化

以八皇后爲例來複習一下常見的幾種搜索優化方法。 講真,我覺得,位運算優化的八皇后就是一道狀壓DP… luoguP1219 樸素算法 八皇后的核心是c[n]數組,表示第n行在第c[n]個位置。 然後枚舉一下1~n-1行即可。

原创 codeforces891B Gluttony題解

第一次做構造題..orz… .一開始以爲是狀壓DP啥的想了半天發現一臉不可做 於是生無可戀的洗洗睡了 早晨看到題解和AC代碼感覺只有一個:蛤? 慣例說說題意。 一個由n 個元素構成的數列T (滿足互異性),假定T′ 爲T

原创 lyd讀書筆記 0x02 枚舉、模擬、遞推

費解的開關 http://www.joyoi.cn/problem/tyvj-1266 Tyvj掛了以後說實話。。joyoi好sabi啊。。 好吧其實挺好看的。。 首先有兩條並不顯然的性質。一個是,每個位置至多被點一次,這是

原创 codeforces895C Square Subsets

什麼,這是狀壓DP??? 是在下輸了…輸的心服口服… ABC都是好題啊… 前排提醒,由於latex沒有^這個符號,所以用⨁ 代替 首先看看數據範圍,70這個玄學範圍,emmm… 理性分析查找題解一波,我們想起來要的是完全

原创 劉書學習筆記(2)DAG上dp(下)

硬幣模型 有n種硬幣,面值V1,V2,...,Vn 且有無限多個。給定S,可以選出多少硬幣,使得總額爲S?求出該數量的最大值和最小值。 硬幣模型的區別在於,這裏的起點和終點都是確定的。我們求的就是確定起點、終點的DAG最短路。

原创 空間向量的應用

其實這個是計算幾何噠! 文化課真好.jpg 好吧其實是單純的發現老師沒講點線距和線線距有些好奇而已 定性分析 線面平行 在面上找兩條不共線的向量,如果該線能用這兩個向量線性表示,則線面平行。 a→∈α,b→∈α,a→≠kb→

原创 cf891A Pride 題解

有史以來第一次rating爲正..手速之力是無窮的!(霧) 這題還是蠻有趣..想到了區間DP但是發現轉移不動,還是naive.. 來看看題意。一串數,每次只能將相鄰兩個元素中的一個變成1,問要求最少多少次GCD才能全爲1。如果

原创 cf886E Maximum Elements 題解

DP神題。也是本蒟蒻做的第一道組合數學+DP題。 先來看看題意。Petya嫌棄自己求區間最大值的做法太慢了,所以發明了這樣一個函數: int fast_max(int n, int a[]) { int ans = 0

原创 NOIP專題複習(三) 狀壓DP學習筆記

其實並不是三,已經走了很多專題了。 之後慢慢填坑吧。 我覺得學普通的DP已經救不了我了。 發覺似乎NOIP狀壓蠻裸的(flag立的飛起),於是學一波。 其實在下作爲一隻蒟蒻,認爲狀壓DP屬於很好理解但不太好寫的類型。 還是

原创 劉書dp學習筆記(1) 數字三角形與DAG上dp(上)

我之前沒怎麼看過劉書,然後前幾天看了一下dp,感覺dp觀被刷新了… 終於明白爲什麼說劉書是神書了! 用[]括住的是在下的一些淺見與筆記。 順便一提,在下不保證代碼是能過評測的,因爲只試了其中幾個數據。 數字三角形 數字三角形

原创 NOIP專題複習(一) 基礎的揹包問題

之所以要走這麼一個專題原因也很簡單,在下的基礎實在是太薄弱了… 所以接下來可能會變成非常基礎的題、略有難度的題和模板題並存的東西.. 於是就是這樣,就先從揹包開始吧( dp[i][j]=max(dp[i-1][j],dp[i

原创 [翻譯]掃描線算法(Line Sweep Algorithm)(1)

原地址:https://www.hackerearth.com/zh/practice/math/geometry/line-sweep-technique/tutorial/ 在cf評論區偶然看見的,順便學習一下好了……然後發

原创 codeforces893D Credit Card

對着AC代碼苦思冥想兩個小時終於頓悟…真是神奇的做法。 大概算奧妙重重的貪心? 我給它起名叫:區間貪心!(霧) 慣例題意。一個人在銀行裏有一張信用卡。 晚上會有錢進來,不過: 1)如果送進來正數元,那就很棒。但是如果超過

原创 劉書學習筆記(4)線性結構上的dp(上)

LIS dp[i]=max{dp[j]}+1 LCS A[i]=A[j] dp[i][j]=dp[i-1][j-1]+1 否則 dp[i][j]=max(dp[i-1][j],dp[i][j-1]) 9-6 比較蛋疼的語文題……

原创 cf870c Maximum splitting 題解

先來說說題意。將一個數剖成一些合數,問最多能剖成多少個。 我們知道,最小的合數是4,所以貪心思路就是儘量多的get到4這個合數。 分析一下,顯然,如果這個數是4的倍數,直接除4;如果除4餘2,那麼不妨來思考一下,除以4之後剩下一