原创 poj3179 : corral the cows-離散化的巧妙運用

看看就想到了二分答案,然後用前綴和驗證一下。 再一看數據:他喵的居然是10000,n*nlogn絕對爆炸。 經過一會兒的思索,我們發現草只分布在最多500個格子裏。 那一定有很多很多行和列是沒有草的,而我們需要做的就是去掉這些行列,這就是

原创 poj1275 cashier-employment

因爲題目問的是至少要招幾個人,那我們就從小到大枚舉要招幾個人,看是否合法。 輸入need表示這一小時至少需要工作的人數,然後用h存一下這一小時最多可以開始工作的人數(就是輸入時可以達到的合法的工作人數)。所以每個小時開始工作的人數一定在0

原创 BZOJ1045 糖果傳遞(均分紙牌問題變種)

先考慮線性的情況: 我們考慮整體和隔離的思想。將前i個看做一個整體,顯然前i個內部的均分是不會改變其整體結構的,因而對於該體系來說,想要達到平均數結構,就必須與下一個體系交換足夠的紙牌,而交換數量就是 |G[i]−i⋅ave| ,其中 G

原创 關於差分約束的一些總結

1. 對於差分約束起點以及一些隱含條件的設置。 舉個例子:起點那個點其實是默認0的。 糖果一題裏面每個小朋友都至少拿到一個,那麼起點向每條邊都連上1 而poj1275和序列2個題裏面,由於有一個前綴和的思想,1.那麼每個數都一定>=0,2

原创 進出棧序列的問題(卡特蘭數)

emmm有很多變種? 1.C(2N,N)/(N-1) 2.遞推:枚舉k,就是假設第一個元素在第k個出棧。於是可以劃分成k-1個數出棧和n-k個數出棧,2邊的方案數字乘起來就行。 3.動規:f[i][j]表示i個數尚未進棧,j個在棧裏,n-

原创 兔子與兔子與迴文串-字符串哈希

哈希就是把一個具有某些性質的東西轉化成另一個便於查詢的東西。其應用有許多,主要是字符串。 下面是2個哈希的字符串題。 兔子與兔子:https://ac.nowcoder.com/acm/contest/1008/B 一道裸題,不想解釋w,

原创 中位數模型

貨倉選址 有一個結論:一條線上的n個點,要選取某一個點,使得所有點到這個點的距離之和最小,那麼這個點一定在中間。 如果n%2==0,就是中間2個之間的任意點都可以。 如果n%2==1,就是正中間那個點。 具體的證明我就不再贅述。。。(大概

原创 序列-差分約束版本

題目鏈接:https://www.luogu.org/problem/P1645 “差分約束一定要轉化成a-b>=c的形式!” ->用b連向a 題目裏有一系列“至少”的要求,有些想到了差分約束。(當然貪心也是很好的) 設s[i]表示前i個

原创 Editor: 維護一個整數編輯器 HDOJ4699

我們可以繼續沿用running median中2個隊列的好想法: 我們沿用2個堆棧。 光標前面的所有數都在棧A中,光標後的都在棧B中。棧A和棧B的棧頂分別是光標2邊的2個數。因爲問的位置保證在光標前,我們只要對於A數組維護一下前綴和。而光

原创 狀壓dp_寶藏

題目鏈接:https://www.luogu.org/problem/P3959 很顯然開通的一定是樹。 所以可以變相的認爲贊助商搞的起點是樹的根,每個結點到樹的根的距離就是這個點的層數。 有點像樹形dp的狀壓dp吧。枚舉根節點,然後枚舉

原创 博弈論-SG函數

1.有向圖遊戲 把每一個局面當做一個點,然後一個局面能一步走到另一個局面就連一條有向邊,保證是一個DAG。從後往前遞推,沒有出度的結點要麼是必敗態,要麼是必勝態。於是能走到必敗態的結點一定是必勝態,只能走到必勝態的結點是必敗態。因爲是DA

原创 小ah和小uim的大逃離

題目鏈接:https://www.luogu.org/problem/P1373 求方案數,然後數據範圍800,感覺上就可以dp 因爲是每個點都可以作爲結束點,所以需要2維表示到了這個點2個人的差是k的方案數。 爲了便於轉移,要加一位0/

原创 hihocoder 分割相同整數

首先我們發現對於不合法的情況:cnt(最大的相同的個數)*2-1>n 由於是字典序最小,我們肯定優先保證前面的越小越好,直接貪心 我們選擇合法的時候最小的數字,置於當前位置。 注意:這裏的合法不僅僅是考慮當前數字是否和前一個有重複,還要時

原创 hdu:color a tree-樹形dp

我們可以二分答案。(至少染色幾個點) 然後對於限制B,我們可以轉化成子樹x內之多有num(總染色數)-x(子樹外的染色數) 然後通過樹形dp從下到上算每個根節點的子樹內的上界和下界,判斷上是否不小於下界。 PS:還有注意一下在算上屆的時候

原创 Sunscreen(poj3624)與Task(HDOJ4864)的比較-貪心

Sunscreen 要找最多的奶牛,所以從奶牛的角度考慮問題。將奶牛的min從大到小排序,對於每個奶牛,要找滿足他條件的裏面的防曬霜之中spf最大的。因爲後面的奶牛的min一定小於等於這個奶牛,下線不成問題,而只關乎上線,我們要把上線小的