原创 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)=