原创 [bzoj4867] [Ynoi2017]舌尖上的由乃

題目大意 給定一棵n個節點的樹,邊有邊權。m個操作:1. 給一條邊邊權加k;2.詢問一棵子樹第k小的深度。 修改操作的k和最初的邊權不超過一個給定的常數len n,m≤100000 len≤10 分析 首先可以求出dfs序,

原创 [codeforces850D]Tournament Construction

題目大意 給定m個數的一個非負整數集合,不超過30。你需要構造一個競賽圖,滿足:所有點的出度去重後等於該集合。 m≤31 分析 做這題我用到了蘭道定理(Landau’s Theorem)。 設點i的出度爲d[i],那麼對於任意

原创 [bzoj4977]跳傘求生

題目大意 有n個隊友和m個敵人,每個隊友有一個攻擊力ai,每個敵人有攻擊力bi和價值ci。你可以選擇若干個隊友,每個隊友i去懟一個敵人j(i,j兩兩不同),當ai>bj時,你的隊友可以對答案造成ai-bj+cj的貢獻。問答案最大可

原创 [codeforces903G]Yet Another Maxflow Problem

題目大意 給定一個2n個節點的圖,其中n個點在A集,n個點在B集。且稱A集第i個點爲ai(B集類似)。每個ai(i < n)向ai+1連一條給定容量的邊(B也一樣),還有m條邊從ax連到ay,容量給定。 有q次操作,每次修改一條

原创 [bzoj5101] [POI2018]Powód

題目大意 有一個n*m的網格圖,給定相鄰的格子之間牆的高度,並且默認邊界的牆的高度是無窮大的。再給定水位上限H,問有多少種可能的水位。 n*m≤500000 H≤1,000,000,000 分析 可以把每個格子看成一個點,相

原创 [bzoj2131] 免費的餡餅

題目大意 你在一個1*W的格子圖上,最開始可以在任意位置。每一個時刻你可以向左右移動1或2格,也可以不動。第i個餡餅在ti時刻落在位置pi上,價值爲vi。問你可以獲得的最大價值和是多少。 n≤100000 W,pi,ti≤108

原创 [bzoj4976]寶石鑲嵌

題目大意 給定n個數以及k,要求將n個數去掉k個,剩下的值or起來最大。 n≤100000 k≤100 每個數是不大於100000的正整數 分析 假設所有數中總共sum個二進制位出現過1,那麼當n-k≥sum時,每個1都一定可以

原创 [arc076F]Exhausted?

題目大意 有m個椅子,第i個在位置i,每個椅子只能坐一個人。 有n個人,第i個人能坐的椅子的位置j需滿足j≤Li或j≥Ri。 現在你可以添加若干個椅子,可以放在任意實數位置。問最少加多少個 n,m≤200000 分析 題目就是

原创 [bzoj4811] [Ynoi2017]由乃的OJ

題目大意 給定一棵n個節點的樹,每個節點上有一個位運算操作(&,|,^)和一個數。 m次操作:1. 修改一個點的操作和數 2. 給定x,y,v,在[0,v]中找一個整數,在樹上從x跑到y,到一個節點當前的數對該節點的操作和數進行

原创 [bzoj5043]密碼破譯

題目大意 有一個n個數的數組a和一個非負整數k(a[],k未知),但是你知道數組b,對於任意i滿足bi=ai^k。你還知道∑ai=m 求可能最小的k,無解輸出-1 n≤100000,bi≤260 分析 其實這種題都是套路題。

原创 [codeforces856D]Masha and Cactus

題目大意 給定n個點的樹,接下來給出m條非樹邊,每條非樹邊有一個價值。現在你可以添加一些非樹邊,在保證每個點最多在一個簡單環的情況下,求價值和最大值。 n,m≤200000 分析 首先考慮dp,設f[i]表示以i爲根的子樹的答案。

原创 [agc017F]Zigzag

題目大意 有一個n行的三角形,第i行有i個格子。第i行第j個格子用(i,j)表示。從(i,j)可以到達(i+1,j)和(i+1,j+1)。現在要確定m條從(1,1)出發到第n行的路徑。設第a條路徑走到的第b個格子是(b,X[a,b

原创 [codeforces873E]Awards For Contestants

題目大意 給定n個正整數,要把它們放進三個組(分別爲1號組,2號,3號),也可以不放。每組至少要有一個數。同時對於對於1,2,3號組,兩兩直接必須滿足cnt[p]≤2*cnt[q],其中cnt[x]表示x號組有多少個數。對於兩個數

原创 博弈

題目大意 給定一棵n個節點的樹。兩個人進行博弈,後手的人最初在節點b上,還給定一個目標節點t。 對於後手的人,如果有至少一條未被標記的邊連着它所在的節點,那麼它必須選擇其中一條走過去,並標記下這條邊。否則不用動。 對於先手的人

原创 [bzoj5017/Snoi2017]炸彈

題目大意 在一條直線上有 N 個炸彈,每個炸彈的座標是 Xi,爆炸半徑是 Ri,當一個炸彈爆炸時,如果另一個炸彈所在位置 Xj 滿足: Xi−Ri≤Xj≤Xi+Ri,那麼,該炸彈也會被引爆。 對於i等於1到n,求把第i個炸