原创 P1850 [NOIP2016]換教室,動態規劃,概率dp

對於剛上大學的牛牛來說,他面臨的第一個問題是如何根據實際情況申請合適的課程。 在可以選擇的課程中,有 2n 節課程安排在 n 個時間段上。在第 i(1≤i≤n)個時間段上,兩節內容相同的課程同時在不同的地點進行,其中,牛牛預先被安排在教

原创 P2280 [HNOI2003]激光炸彈-動態規劃,矩形dp,前綴和,容斥原理

  這題與其說是前綴和,不如說是容斥原理; 先處理好s[i][j]這個數組,表示以(i,j)爲右下角的矩形中的總價值; 之後再來一遍循環,在所有的半徑爲r的矩陣中求最大值即可; https://www.luogu.org/problem

原创 ☆P2760 科技莊園-動態規劃,揹包

Life種了一塊田,裏面種了有一些桃樹。 Life對PFT說:“我給你一定的時間去摘桃,你必須在規定的時間之內回到我面前,否則你摘的桃都要歸我喫!” PFT思考了一會,最終答應了! 由於PFT的數學不好!它並不知道怎樣才能在規定的時間獲

原创 P2296 [NOIP2014]尋找道路-圖論,最短路,bfs

在有向圖 G中,每條邊的長度均爲 1,現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件: 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。 在滿足條件1的情況下使路徑最短。 注意:圖 G 中可能存在重邊和自

原创 P2308 添加括號-動態規劃,區間dp,前綴和,dfs

給定一個正整數序列a(1),a(2),...,a(n),(1<=n<=20) 不改變序列中每個元素在序列中的位置,把它們相加,並用括號記每次加法所得的和,稱爲中間和。 例如: 給出序列是4,1,2,3。 第一種添括號方法: ((4+1)

原创 ☆P2622 關燈問題II-搜索,bfs,狀壓

現有n盞燈,以及m個按鈕。每個按鈕可以同時控制這n盞燈——按下了第i個按鈕,對於所有的燈都有一個效果。按下i按鈕對於第j盞燈,是下面3中效果之一:如果a[i][j]爲1,那麼當這盞燈開了的時候,把它關上,否則不管;如果爲-1的話,如果這

原创 P2858 [USACO06FEB]奶牛零食Treats for the Cows-動態規劃,區間dp

  約翰經常給產奶量高的奶牛發特殊津貼,於是很快奶牛們擁有了大筆不知該怎麼花的錢.爲此,約翰購置了N(1≤N≤2000)份美味的零食來賣給奶牛們.每天約翰售出一份零食.當然約翰希望這些零食全部售出後能得到最大的收益.這些零食有以下這些有

原创 P1410 子序列-動態規劃

給定一個長度爲N(N爲偶數)的序列,問能否將其劃分爲兩個長度爲N/2的嚴格遞增子序列 https://www.luogu.org/problemnew/show/P1410 一般青年Dp方案:F[i][j][k][l] 表示前i+j位

原创 P1896 [SCOI2005]互不侵犯-動態規劃,狀壓dp

在N×N的棋盤裏面放K個國王,使他們互不攻擊,共有多少種擺放方案。國王能攻擊到它上下左右,以及左上左下右上右下八個方向上附近的各一個格子,共8個格子。 https://www.luogu.org/problemnew/show/P18

原创 P3052 [USACO12MAR]摩天大樓裏的奶牛Cows in a Skyscraper-動態規劃,狀壓dp

給出n個物品,體積爲w[i],現把其分成若干組,要求每組總體積<=W,問最小分組。(n<=18) https://www.luogu.org/problemnew/show/P3052 

原创 ☆P2491 [SDOI2011]消防-樹的直徑,LCA,dfs,倍增

某個國家有n個城市,這n個城市中任意兩個都連通且有唯一一條路徑,每條連通兩個城市的道路的長度爲zi(zi<=1000)。 這個國家的人對火焰有超越宇宙的熱情,所以這個國家最興旺的行業是消防業。由於政府對國民的熱情忍無可忍(大量的消防經費

原创 P3629 [APIO2010]巡邏-樹的直徑

在一個地區中有 n 個村莊,編號爲 1, 2, ..., n。有 n – 1 條道路連接着這些村 莊,每條道路剛好連接兩個村莊,從任何一個村莊,都可以通過這些道路到達其 他任一個村莊。每條道路的長度均爲 1 個單位。 爲保證該地區的安全

原创 ☆P3959 [NOIP2017]寶藏-動態規劃,狀壓dp,搜索,二進制用法模板,dfs

參與考古挖掘的小明得到了一份藏寶圖,藏寶圖上標出了 n 個深埋在地下的寶藏屋, 也給出了這 n 個寶藏屋之間可供開發的m 條道路和它們的長度。 小明決心親自前往挖掘所有寶藏屋中的寶藏。但是,每個寶藏屋距離地面都很遠, 也就是說,從地面打

原创 P2679 [NOIP2015]子串-動態規劃,字符串

有兩個僅包含小寫英文字母的字符串 AA 和 BB。 現在要從字符串 A 中取出 k 個互不重疊的非空子串,然後把這 k 個子串按照其在字符串 A 中出現的順序依次連接起來得到一個新的字符串。請問有多少種方案可以使得這個新串與字符串 B 

原创 P3128 [USACO15DEC]最大流Max Flow-LCA,差分 ,倍增,dfs

FJ給他的牛棚的N(2≤N≤50,000)個隔間之間安裝了N-1根管道,隔間編號從1到N。所有隔間都被管道連通了。 FJ有K(1≤K≤100,000)條運輸牛奶的路線,第i條路線從隔間si運輸到隔間ti。一條運輸路線會給它的兩個端點處的