原创 Gym 100676G Training Camp 很好的一個dp

G. Training Camp [ Color: Yellow ] Montaser is planning to train very hard for ACM JCPC 2015; he has prepared a list w

原创 poj 1151 Atlantis(多矩形面積) + poj 1177Picture(多矩形周長) 線段樹進階

題意:平面內有很多矩形,求它們組成的圖形的總面積; 題解: 先將清楚一個東西,我用的掃描線是一根平行y軸的線,從左到右掃描(你也可以用一根橫向的掃描線從下到上掃描),離散化就是把這跟線上的點hash一下; 1: 什麼是離散化,其實很簡單

原创 網易校園招聘dp題

小易有n塊磚塊,每一塊磚塊有一個高度。小易希望利用這些磚塊堆砌兩座相同高度的塔。爲了讓問題簡單,磚塊堆砌就是簡單的高度相加,某一塊磚只能使用在一座塔中一次。小易現在讓能夠堆砌出來的兩座塔的高度儘量高,小易能否完成呢。 輸入描述: 輸入包

原创 UVa 1252 - Twenty Questions(記憶化搜索,狀態壓縮dp)

題目: Consider a closed world and a set of features that are defined for all the objects in the world. Each feature can b

原创 poj 1981 Circle and Points (模板)

套圈:平面上有N個點,用單位圓去套,最多能套幾個? 極限情況  所謂極限情況就是單位圓上有兩個點,稍微動一下就會損失一個點,覆蓋點最多的圓一定有一個是這種圓(當然當N=1的時候是個例外)。樸素想法是先固定兩個點,然後枚舉其他的點是否

原创 整數劃分(轉載) + poj1221 UNIMODAL PALINDROMIC DECOMPOSITIONS

所謂整數劃分,是指把一個正整數n寫成如下形式:        n=m1+m2+...+mi; (其中mi爲正整數,並且1 <= mi <= n),則

原创 poj 1050 To the Max(DP)做法很多

題意: 給你一個n*n的正方形,求這個正方形除自己外的子矩陣所有點的和最大的那個。 做法一:我自己想的嘿嘿嘿! 代碼: #include <iostream> #include <cstdio> #include <cmath> #inc

原创 poj 1141 Brackets Sequence (經典dp)

題目描述: 定義合法的括號序列如下: 1 空序列是一個合法的序列 2 如果S是合法的序列,則(S)和[S]也是合法的序列 3 如果A和B是合法的序列,則AB也是合法的序列 例如:下面的都是合法的括號序列 (),  [],  (()),  

原创 poj 1260 Pearls (dp)

題意:不同等級的寶石,每個等級買了後等要額外付出10枚的錢,每一檔可以買更高檔的來代替,問全部寶石一共最少可花多少錢。 思路:一開始想的是貪心,然後發現不行;(別問爲什麼,你自己舉個例子就會知道的); f[i] = min{f[k] +

原创 c++位運算符 | & ^ ~ && ||,補碼,反碼

轉自:http://blog.csdn.net/wuguai4/article/details/7311953 一:簡介 1 位邏輯運算符:       & (位   “與”)  and       ^  (位   “異或”)    

原创 poj 1080 Human Gene Functions 算簡單DP

題解:抄襲discuss,哈哈! 首先定義對X(xm) = {x1,x2,x3,...xm};Y(yn) = {y1,y2,y3,...yn};這兩個按照題目的 要求得到最大值的排列M{...}所對應的最大值是f(m,n); ******

原创 模板___反素數 + poj2286 (反素數+線段樹)

這篇文章將討論反素數,素數大家都知道是什麼,那麼什麼又是反素數呢? 先看定義:對於任何一個整數n,將其約數的個數記爲g(n),如g(1) = 1,g(6) = 4,並且如果對於任何一個整數i (0<i<n),都滿足g(i) < g(n)

原创 poj 2411 Mondriaan's Dream (狀態dp)

題目 這個題目的題意很容易理解,在一個N*M的格子裏,我們現在有兩種類型的 磚塊,1 * 2 和 2 * 1,問一共有多少種方案,可以將整個N*M的空間都填滿。 最簡單的例子就是下面的了: 題解: 狀態標記 橫放和豎放的下一個均爲1,豎放

原创 poj2528 Mayor's posters 線段樹+離散化(經典)

題意: 市長競選,每個市長都往牆上貼海報,海報之間彼此可以覆蓋,給出粘貼順序和每個海報的起點和長度,問最後有多少海報是可見的。 代碼: 不是線段樹新手應該能看懂,或者說做這題還是wa的同學,下面註釋寫的都是細節; #include <io

原创 poj 2182 Lost Cows 暴力或者用線段樹 + poj2828Buy Tickets

這兩題差不多一個意思, 2828加了一個ID; poj 2182 題意簡述:  有N頭牛,編號爲1~N,亂序排成一列,現在已知每頭牛前面有多少頭牛比它的編號小,求排隊後從前往後數,每頭牛的編號。 暴力思路:從後往前求,定義一個a[I]數