原创 【HDU 5698】 瞬間移動

【題目鏈接】           點擊打開鏈接【算法】          用f[i][j]表示走到(i,j)這個位置有多少種方案,因爲走到(i,j)這個位置,上一步一定在它左上角的矩形中,所以,          f(i,j) = sig

原创 【BZOJ 3211&3038】 花神遊歷各國 & 上帝造題的七分鐘2

【題目鏈接】          【BZOJ 3211】 點擊打開鏈接          【BZOJ 3038】 點擊打開鏈接【算法】            線段樹            開根操作直接開到葉子節點,注意當區間中所有數都是0或

原创 【USACO 2010FEB】 slowdown

【題目鏈接】           點擊打開鏈接【算法】           dfs序 + 線段樹           樹鏈剖分同樣可以解決這個問題【代碼】            #include<bits/stdc++.h> using

原创 【SDOI 2008】 遞歸數列

【題目鏈接】          點擊打開鏈接【算法】          矩陣乘法優化遞推          由於本博客不支持數學公式,所以不能將矩陣畫出來,請諒解!【代碼】         #include<bits/stdc++.h>

原创 【BZOJ 3732】 Network

【題目鏈接】          點擊打開鏈接【算法】           求出這個圖的最小生成樹,對於每次詢問,用倍增法求出最近公共祖先,查詢最小生成樹上兩點路徑上的最大值           算法的正確性?           假設x和

原创 5月19日省中提高組題解

【Problem A】 Square【題意】          給一個n * n的01矩陣,要求一個最大的全1正方形子矩陣,輸出它的面積          N <= 1000 【題解】          樸素的做法是先求二維前綴和,然後暴

原创 【LNOI 2014】 LCA

【題目鏈接】         點擊打開鏈接【算法】           考慮求lca(x,y)的深度           我們可以將從根到x路徑上的點都打上標記,然後,詢問y到根上路徑的權值和           那麼,求sigma(de

原创 【POJ 1330】 Nearest Common Ancestors

【題目鏈接】           點擊打開鏈接【算法】         倍增法求最近公共祖先【代碼】         #include <algorithm> #include <bitset> #include <cctype> #in

原创 【HDU 4547】 CD操作

【題目鏈接】          點擊打開鏈接【算法】          分四種情況討論 :          1. 當前目錄和目標目錄是同一目錄,不需要變換,答案爲0          2. 當前目錄是目標目錄的祖先,答案爲當前目錄的深度

原创 【HDU 3652】 B-numbers

【題目鏈接】           點擊打開鏈接【算法】          數位DP          f[i][j][k][l]表示i位數,第一位爲j,除以13的餘數爲k,是/否包括子串“13”的方案數          當然,我們也可以

原创 【POJ 3233】Matrix Power Series

【題目鏈接】          點擊打開鏈接【算法】          要求 A^1 + A^2 + A^3 + ... + A^k          考慮通過二分來計算這個式子 :          令f(k) = A^1 + A^2

原创 【BZOJ 4353】 Play with tree

【題目鏈接】           點擊打開鏈接【算法】          樹鏈剖分          對於線段樹的每個節點,記錄這段區間的最小值,最小值的個數,值爲0的個數,此外,還要維護兩個懶惰標記【代碼】          本題細節很

原创 【POJ 1470】 Closest Common Ancestors

【題目鏈接】          點擊打開鏈接【算法】          離線tarjan求最近公共祖先【代碼】         #include <algorithm> #include <bitset> #include <cctype

原创 【HDU 1588】 Gauss Fibonacci

【題目鏈接】          點擊打開鏈接【算法】           要求           f(g(0)) + f(g(1)) + f(g(2)) + ... + f(g(n-1))           因爲g(i) = k *

原创 【BZOJ 5165】 樹上倍增

【題目鏈接】           點擊打開鏈接【算法】           樹上倍增,時間複雜度 : O(qklog(n))【代碼】         #include<bits/stdc++.h> using namespace std;