$n$ 個數,$m$ 次詢問。
$n\leq 40000,m\leq 50000$
看完題目:呀這不是莫隊裸題嗎??
然後經過一波思(forever)考(piano),終於會做了。
首先請你自行證明乙個結論:
在詢問區間內任取一段子區間,詢問區間內的最小眾數一定是子區間的最小眾數或者出現在詢問區間除掉子區間的其他地方。
於是我們考慮分塊,$base=\sqrt=200$ 一塊。
我們考慮對於所有 $i,j$ 預處理出第 $i$ 塊到第 $j$ 塊的區間最小眾數。
我還要預處理出每乙個數在前 $i$ 塊的出現次數 $\left(i\in \left[1,\left\lfloor\cfrac\right\rfloor\right]\right)$ 。
於是在詢問的時候只要看一看詢問區間最大連續塊段的最小眾數和其他剩餘的數就可以了。
時間複雜度 $\theta (n \sqrt)$ 。
#include using namespace std;const int n=40005,m=205,base=200;
int n,m,hs,a[n],ha[n],res[m][m],cnt[m][n],tax[n];
int l,r,l,r;
void hash()
int calc(int x)
int main()
return 0;
}
bzoj 2725 Violet 6 故鄉的夢
無向圖,給定s和t,多次詢問在刪除某條邊時兩點間最短路 我的spfa被卡了 我們對所有不在最短路徑的上的邊 設它的起點為u 終點為v。那麼對於這條邊,包含該邊的最優的s到t路徑就應該是 s s1 u v t1 t 其中s1,t1表示最短路徑上的兩個點。那麼這樣的一條最短路可以再s1 t1中某條邊被刪...
BZOJ 2725 Violet 6 故鄉的夢
題意 給出乙個無向圖,給定起點和終點。給出q個詢問,每個詢問是刪除某條邊之後,起點到終點的最短路變成什麼?詢問之間是獨立的。這道題不錯,但是蒟蒻完全不會做qaq,解法參考claris大佬的。首先容易想到如果刪掉的邊不在最短路上的話,最短路是不會變的。於是我們先跑一遍最短路,找出一條最短路。終點是如果...
bzoj 2724 蒲公英(分塊)
傳送門biu 分塊,預處理f i,j 為第i塊到第j塊的眾數。每次查詢區間眾數時,可能作為答案的種類只有完整的塊中的眾數和不完整的塊中的數最多2 n 1 種。二分求一下區間中出現的次數就可以了。include using namespace std int n,m,lastans,p int blo...