原创 Comet OJ - Contest #11- isaster (kruskal重構樹)

題意:給一個無向連通圖,兩種操作:1.修改點權 2.詢問從x出發只經過編號<=y 的點的點權積   按邊端點的max值排序後建kruscal重構樹,線段樹維護重構樹dfs序的點權積,修改時的直接線段樹單點修改點權,查詢時倍增找到x能到達的

原创 Gym 100959B Airports(曼哈頓距離最大生成樹)

曼哈頓距離最小生成樹: https://www.cnblogs.com/xzxl/p/7237246.html 這道題顯然是求曼哈頓距離的最大生成樹,和求最小生成樹一樣,用個樹狀數組維護最值,加邊後跑kruskal,不同的是最大生成樹需

原创 bzoj1001 最小割

題目大意:有n*m個網格點,座標爲(i,j)的點與(i+1,j),(i,j+1),(i+1,j+1zu)間有權值w的無向邊,表示該邊可通過兔子  的最大數量,左上和右下分別爲兔子起點和終點。一頭狼阻只能擋一隻兔子,求要阻擋兔子到達終點的最

原创 Wannafly挑戰賽1 - C.MMSet2(虛樹,lca)

https://ac.nowcoder.com/acm/contest/15/C 很顯然,虛樹建出來後,dp一下,答案就是(虛樹的直徑+1)/ 2。。 但是wa了兩個小時後才發現自己一直用的是假的虛樹板子。。。 看了別人代碼後,發現樹

原创 牛客練習賽61 ——F.蘋果樹(動態點分)

題意:    鏈接:https://ac.nowcoder.com/acm/contest/5026/F    給定一個由n個點和n-1條邊組成的無向連通圖(即一棵樹),每一條邊都有一個權值代表走過它所需要的時間花費,每個點上面有初始有一

原创 Codeforces Round #625 div1 C.World of Darkraft: Battle for Azathoth & D.Reachable Strings

C. World of Darkraft: Battle for Azathoth   題意:有n把武器,m件盔甲,每件武器有攻擊力Ai和價格CAi,每件盔甲有防禦力Bj和價格CBj,現需購買一把武器和一副              盔甲

原创 HDU 6072 Logical Chain

HDU6072 題意:       給n個點和n*n的鄰接矩陣,m次操作,每次將鄰接矩陣中不超過k個位置取反,即將1轉0,將0轉1,問每次操作後有多少個點對能相互到達。n<=250,m<=25000,k<=10.        題解:  

原创 2019ICPC銀川區域賽-H.Delivery Route( spfa優化 或 強連通分量+拓排+dij)

題目大意:給一個n個點,x條雙向邊,y條單向邊的圖,同時雙向邊權全爲正,單向邊權有可能爲負,且保證單向邊不會出現在環中。求從點s分別到1~ n的最短距離。        由於有負邊,不能直接用dij,而裸的spfa又會被卡上天,所以需要考

原创 分數規劃

  poj2976 裸。。直接二分 #include<stdio.h> #include<iostream> #include<queue> #include<string.h> #include<stdio.h> #include<a

原创 codeforce710f

題目大意:m次操作,3種操作,添加一個新串,刪除一個串,給一個串詢問集合裏所有串的出現次數之和。要求強制在線。       維護兩個集合,一個維護增加串,一個用來維護刪除串,結果即爲這兩個集合裏字符串的出現次數之差。由於題目要求強制在線,

原创 HDU多校第二場 - hdoj6599 I Love Palindrome String

題目大意:給一個長度n的字符串S,問長度分別爲1 - n 的迴文子串個數,且每個迴文子串S(l,r) 需滿足 S(l,(l+r)/2)也是迴文串。        迴文自動機處理出不同迴文子串的個數,然後用馬拉車判斷每個迴文串是否滿足要求即

原创 codeforce1195E OpenStreetMap

單調隊列。。先豎着處理出每一列的的最小值,再橫着處理每一行的最小值。 #include<iostream> #include<stdio.h> #include<vector> #include<math.h> using namesp

原创 bzoj1095 (點分樹)

題目大意:n個節點的樹,m次操作,每次將白點變黑,將黑點變白,或詢問最遠黑點對的距離。 若無修改,可直接樹形dp或點分求即可,加上修改的話就要用到點分樹了(orz括號序列的做法)。。。考慮沒修改時點分治的做法爲對每個root,最遠點對即爲

原创 bzoj3730震波(點分樹,樹狀數組)

題目大意:n個節點的樹,m次操作,每次修改每個點權值,或詢問與節點x距離不超過k的所有點權值之和。       對點分樹的每個節點X用個線段樹維或樹狀數組維護其子樹中每個點到X的距離權值,再用另一個維護到fa[x]的距離權值(用於查詢時容

原创 The 16th Zhejiang Provincial Collegiate Programming Contest - B Element Swapping(zoj4101)

求出b數組的x,y值,再與原x、y相減得              dx=(i*b[i]+j*b[j])-(i*b[j]+j*b[i])=(i-j)*(b[i]-b[j])    同理  dy=(i-j)*(b[i]^2-b[j]^2)=