原创 HDU5808(Bestcoder Round86)Price List Strike Back

題目戳這 假如我們已知第i天可以購買的所有商品,那麼剩下就是01揹包的問題了.能夠購買的所有商品由兩個條件決定:編號下標和距離.我們可以減少一個維度使問題更簡單. 假如把詢問和點一起按照距離d排序,那麼就能保證詢問到i時,所有考慮

原创 BZOJ2788/POI2012 Festival

Task 有n個正整數X1,X2,…,Xn,再給出m1+m2個限制條件,限制分爲兩類: 1. 給出a,b (1<=a,b<=n),要求滿足Xa + 1 = Xb 2. 給出c,d (1<=c,d<=n),要求滿足Xc <=

原创 USACO2011Open Silver Unlocking Blocks 題解

搜索搜索搜索!      每次把一塊積木移動一步,而且每塊積木內部的相對位置是不變的,那麼每次只要記錄積木任意一點的位置表示狀態即可.爲了方便,我們可以設爲每個積木包圍塊的左上角的點.      如何實現? 一種想法是暴搜!可惜T了… 暴

原创 BZOJ1532/POI2005 Dicing

直接求似乎不簡單,由於題目求”最大值最小問題”,可以轉化爲二分答案來驗證一個解是否成立.假設枚舉的答案是x,那麼所有人贏得的場次都<=x.而每場比賽最多隻有一個人獲勝,我們可以根據此信息,構圖: 設置源點與每個人建邊,每個人與它

原创 CodeForces 444C DZY Loves Colors題解

[題意]      有n個氣球,每個氣球有一個顏色x,改變爲y後,美麗值增加|x-y|.      對一個序列有兩種操作: 1.    把區間在[L,R]的顏色染成x. 2.   詢問區間[L,R]的氣球的美麗值總和. n<=1e5,1<

原创 BOZJ1528/POI 2005Toy Cars

假設地板上能放足夠多的玩具,那麼肯定一次性將所有玩具都拿下來.可是題目中有了k這個限制.爲了完成題目的要求,不得不將某些玩具拿回去,使得新玩具有地方放置.那麼問題就是將什麼玩具拿回去.如果某個玩具x之後不再出現,那麼一定將它拿走,

原创 BZOJ2793/POI2012 Vouchers

Task 考慮正整數集合,現在有n組人依次來取數,假設第i組來了x人,他們每個取的數一定是x的倍數,並且是還剩下的最小的x個。 正整數中有m個數被標成了幸運數,問有哪些人取到了幸運數。 m<=1,000,000, n<=1,00

原创 BZOJ1534/POI2005 Fibonacci sums

首先把兩個序列相加得到初始序列.之後就對初始序列進行調整: 對於f[i]>=2的情況可以根據2*f[i]=f[i]+f[i-1]+f[i-2]=f[i+1]+f[i-2]轉化爲f[i-2]++,f[i+1]++. 對於f[i]