原创 匹配 (KMP)

10.28 思路: 簡單kmp,特判一下就好。 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define LL

原创 修仙 (KMP)

修仙 10.25 前100%的數據:看樣子就是道KMP的題對吧。仔細想想KMP的性質,fail[i]則說明s[1,fail[i]]=s[i-fail[i]+1,i],說明這個前綴在(i-1fail[i]+1,i)出現過,實際上我們

原创 被子

被子(quilt) 10.26 來自atcoder code festival 2017 qual A的C題.主要和字母數目奇偶性相關,選手可以自行去atcoder.jp查看題解(逃 爲了儘量卡低錯誤做法的分數,極限數據進行了捆

原创 將軍令 (貪心)

將軍令 10.24 思路: 其實就是BZOJ 1117 救火站Gas 的簡單版,其實就是O(n)的,哪裏來的k!!! #include <iostream> #include <cstdio> #include <cstrin

原创 斐波那契

斐波那契 10.23 **100 分做法: 我們來研究一下這個神祕的力量: 依次寫下兔子們的標號和他們父親(從 2 開始): 1 1 1 2 1 2 3 1 2 3 4 5 … 發現其實一定是許多連續段的

原创 b進制分解 加乘最小步數

11.7 b進制分解 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #define LL long long #define

原创 sumcomb (組合數)

10.19 找規律題目,在圖上推推就發現,一個是起點下面的數,一個是起點右下角的數。 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath>

原创 合併序列

10.29 思路: 多路並行問題,寫了個比較暴力的做法,開O2就是能過的。 同樣可以用二分。 #include <iostream> #include <cstdio> #include <algorithm> #include <c

原创 BZOJ 4565 字符合並 (區間狀壓dp)

4565: [Haoi2016]字符合並 Time Limit: 20 Sec Memory Limit: 256 MB Description 有一個長度爲 n 的 01 串,你可以每次將相鄰的 k 個字符合並,得到一個新的字符並獲

原创 kill (二分 貪心)

kill 思路: 二分ans後,直接貪心暴力check。 每個人去打他能打得到的最遠的怪獸。 #include <cstdio> #include <cstring> #include <iostream> #include <alg

原创 BZOJ 2125 最短路 (拆環重建圖 lca spfa)

2125: 最短路 Time Limit: 1 Sec Memory Limit: 259 MB Description 給一個N個點M條邊的連通無向圖,滿足每條邊最多屬於一個環,有Q組詢問,每次詢問兩點之間的最短路徑。 Input 輸

原创 升序操作 (二分 貪心)

11.7 也可以不用判環,暴力check,按照順序暴力跑(看代碼吧) #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #defi

原创 pay 解方程 (exgcd)

10.19 思路: exgcd解方程,等差數列求和 #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #define LL long

原创 曼哈頓距離幾何意義 矩形面積並

11.7 思路: 二分ans,把所有長度>mid的(lf,rg)都搞出來, 然後我們要找出一個點對(u,v),使得|x - u| + |y - v| <= mid。 考慮幾何意義,曼哈頓距離的圖像限定。 把一個區間(lf,rg)轉

原创 Hanoi 多漢諾塔問題 (dp)

Hanoi 11.3 類比只有三個柱子的漢諾塔, 設f[i][j]爲有i個盤子j個柱子時的最少步數. 那麼肯定是把一些上面盤子移動到某根不是j的柱子上, 然後把剩下的盤子移動到j, 然後再把上面的盤子移動到j. 於是就有遞推式f[i][j