原创 [BZOJ]1602: [Usaco2008 Oct]牧場行走

題目大意:給你一棵樹以及相鄰節點之間的距離,之後詢問2點之間的距離。 用dis數組存根節點到其他節點的距離,則有distance(a,b)=dis[a]+dis[b]-dis[lca(a,b)]*2,所以這題可以用樹上倍增求LC

原创 [BZOJ]4832: [Lydsy2017年4月月賽]抵制克蘇恩

這個版本帶克蘇恩怕是活不到10費啊 #include <cstdio> #include <cstring> using namespace std; inline int read(void) { int a=0;st

原创 [BZOJ]4404: [Neerc2015]Binary vs Decimal

由於本人太垃圾了,只能打表 #include <iostream> #include <cstdio> using namespace std; int n,fa[]={0,0,0,2,0,4,4,4,0,8,6,6,0,12,1

原创 [BZOJ]2054: 瘋狂的饅頭

數據太大,我們考慮對於一個饅頭,最後一次染的色就是最後的顏色,然後就倒着來搞,加上並查集優化就好了 #include <cstdio> #include <algorithm> using namespace std; inlin

原创 [BZOJ]3224: Tyvj 1728 普通平衡樹

平衡樹的模板題。 Treap: #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; #define C (c=getchar(

原创 [BZOJ]3781: 小B的詢問

莫隊裸題,連我這種蒟蒻都可以一次AC #include <cstdio> #include <cmath> #include <algorithm> using namespace std; inline char tc(void

原创 點分治[BZOJ]2599: [IOI2011]Race

題目:給一棵樹,每條邊有權.求一條簡單路徑,權值和等於K,且邊的數量最小.N <= 200000, K <= 1000000 思路:先找到根,然後求出經過根的路徑數最小的方案。在處理一個節點時,用已處理的信息加上當前點的信息來更新

原创 [BZOJ]1024: [SCOI2009]生日快樂

因爲今天是同桌生日(兼虐狗節)加上第一次寫博客,所以就挑了這麼一道(水)題。 題目大意:N個人分一個邊長分別爲X和Y的矩形蛋糕,要切N-1刀分成面積相等的N塊,並且每刀都得平行於一塊蛋糕的一條邊來切,我們要求 N塊蛋糕的

原创 [bzoj1015][JSOI2008]星球大戰starwar

19號學校要考試了,檢測大家寒假預習情況…… 題目大意:一個無向圖上有N個點,有m條邊,要按順序刪點,按次序輸出每次刪點後圖中的連通塊數量。 因爲刪點的操作實現過於複雜,所以我們可以考慮倒着來將一個個點加入圖中,通過並查集來求

原创 1054: [HAOI2008]移動玩具

很顯然這題bfs就可以過了,但是因爲上完數學課降智商,看都沒看就直接打了IDA*,湊合着看吧。 #include <cstdio> #include <cstring> using namespace std; int s,t,x

原创 [BZOJ]1051: [HAOI2006]受歡迎的牛

題目:每一頭牛的願望就是變成一頭最受歡迎的牛。現在有N頭牛,給你M對整數(A,B),表示牛A認爲牛B受歡迎。 這 種關係是具有傳遞性的,如果A認爲B受歡迎,B認爲C受歡迎,那麼牛A也認爲牛C受歡迎。你的任務是求出有多少頭 牛被

原创 [BZOJ]1242: Zju1015 Fishing Net弦圖判定

弦圖判定,題目沒有騙你 #include <cstdio> using namespace std; #define F(x) (x+1+n) inline int max(int a,int b) { return a

原创 [BZOJ]1016: [JSOI2008]最小生成樹計數

#include <cstdio> #include <algorithm> using namespace std; #define mod 31011 inline char tc(void) { static cha

原创 [BZOJ]1324: Exca王者之劍

題目大意:在一個N*M的網格之中,每個格子上都有一定價值的寶石,Amber可以任意選則一個起始點。並且Amber可以瞬間取走當前所在格子中的寶石,Amber每秒可以走一步,在偶數秒時他周圍4格中的寶石會消失(包括0秒),問最多能取

原创 [BZOJ]1601: [Usaco2008 Oct]灌水

題目大意:要給n塊地灌水,對於每一塊地,可以選擇從另一塊地引水過來,也可以選擇建造水庫,引水和建造水庫都需要費用,問給N塊地灌水的最小費用。 最終狀態是個森林,對於每一棵樹,都有一個點建造了水庫,我們人工加入一個點,把建造了水庫