原创 【Bzoj4195】程序自動分析

題意 給定n個形如xi=xj或xi≠xj的變量相等/不等的約束條件,讓你判斷是否矛盾。 解析 用並查集把相等的並起來,之後判斷有沒有衝突的。注意要先把所有的都並起來,因爲可能有連等。 #include <cstdio> #in

原创 【Bzoj2654】tree

題意 給你一個無向帶權連通圖,每條邊是黑色或白色。讓你求一棵最小權的恰好有need條白色邊的生成樹。 題目保證有解。 解析 這題直接考慮白邊不好做,不過我們可以給白邊加上一個值x,而x越大,選取的白邊就越少,x越小,選取的白邊

原创 【Bzoj3626】LCA

題意 給出一個n個節點的有根樹(編號爲0到n-1,根節點爲0)。一個點的深度定義爲這個節點到根的距離+1。 設dep[i]表示點i的深度,LCA(i,j)表示i與j的最近公共祖先。 有q次詢問,每次詢問給出l r z,求sig

原创 【Bzoj1293】生日禮物

題意: 小西有一條很長的綵帶,綵帶上掛着各式各樣的彩珠。已知彩珠有N個,分爲K種。簡單的說,可以將綵帶考慮爲x軸,每一個彩珠有一個對應的座標(即位置)。某些座標上可以沒有彩珠,但多個彩珠也可以出現在同一個位置上。 小布生日快到了,

原创 【Bzoj3531】旅行

題意:有n個城市,每個城市有權值和顏色,支持的操作有單點修改權值,單點修改顏色,查詢區間同顏色之和,查詢區間同顏色最大值。 思路:對於每種顏色,放入不同的線段樹,但其實整個加起來還是還是n個結點,值得注意的是,這裏要使用動態開點,要一步

原创 【Bzoj1876】SuperGCD

python a = (int)(input()) b = (int)(input()) while b!=0: t = b b = a%b a = t print(a) 點贊 收藏 分享 文

原创 【Bzoj1800】飛行棋

題目大意:n段圓弧,求有多少個矩形 題解:統計直徑就行了,可以採用前綴和,然後答案就是C(x,2)。不過統計直徑的時候可能會出現一種情況,比如1,2,3和4,5,6是兩段等於半圓的弧,而它們所對的半徑是同一條,所以說統計時會有重複,對於

原创 【Bzoj3083】遙遠的國度

題意 給定一棵有根樹,支持3種操作: 1.把首都修改爲id; 2.將p1 p2路徑上的所有城市的防禦值修改爲v; 3.詢問以城市id爲根的子樹中的最小防禦值。 分析 畫了一堆圖之後終於搞懂了一點點,首先換根的話肯定不是真的

原创 【Bzoj1053】反素數ant

定理:一個數約數個數=所有素因子的次數+1的乘積 然後得一個2000000000以內的數字不會有超過12個素因子 在一個因子數爲n的集合中,這個集合中最小的數就是一個反質數。 所以我們只要找出小於n的數中因數個數最多的最小數。 #inc

原创 【Bzoj1050】旅行comf

題意:給你一個無向圖,N(N<=500)個頂點, M(M<=5000)條邊,每條邊有一個權值Vi(Vi<30000)。給你兩個頂點S和T,求一條路徑,使得路徑上最大邊和最小邊的比值最小。如果S和T之間沒有路徑,輸出”IMPOSSIBLE”

原创 【Bzoj2819】Nim

題意 給定一棵樹,兩個操作: 1.詢問若在v到u間的路徑上的石子堆中玩Nim遊戲,是否有必勝策略。 2.把堆v中的石子數變爲k。 作爲一個解[ka]決[guo]了這道題的人,來分[kou]析[hu]一下算法,其實正解是Dfs

原创 【Bzoj1607】輕拍牛頭

題意:給n個數,求出對於每個數,其它數有幾個是它的約數。 解析:可以篩一遍,不過最好把一樣的數用數組保存,不然可能一個個篩會T。然後就是要注意j要從i而不是2i開始枚舉,因爲可能存在相同的數字,最後給ans減1就好了。 #includ

原创 【Bzoj1196】公路修建問題

題意 給一些邊,每邊有兩種權值v1,v2(v1>v2)。分別表示一級或二級,讓你求取了k條一級公路時的最小生成樹的最大邊權。 解析 因爲邊的權值範圍不大,所以可以直接枚舉邊權,然後在邊中選權值小於check值的加入。 #inc

原创 【Bzoj2151】種樹

題意 A城市有一個巨大的圓形廣場,爲了綠化環境和淨化空氣,市政府決定沿圓形廣場外圈種一圈樹。園林部門得到指令後,初步規劃出n個種樹的位置,順時針編號1到n。並且每個位置都有一個美觀度Ai,如果在這裏種樹就可以得到這Ai的美觀度。但

原创 樹鏈剖分總結

樹鏈剖分 ….等等等等 這是題目總結,反正就是把各種水題放到一起。 然後數組意義的話,dpt深度,son重兒子,ftr父親,rnk線段樹中編號,size是子樹大小,top是重鏈頂端的結點。 【Bzoj1036】樹的統計 比較裸