Vijos P1464 積木遊戲(動態規劃)
積木遊戲
SERCOI 最近設計了一種積木遊戲。每個遊戲者有N塊編號依次為1 ,2,…,N的長方
體積木。對於每塊積木,它的三條不同的邊分別稱為"a邊"、"b邊"和"c邊"
遊戲規則如下:
1、從N塊積木中選出若干塊,並將它們分成M(l<=M<=N) 堆,稱為第1堆,第2 堆…,第M堆。每堆至少有1塊積木,並且第K堆中任意一塊積木的編號要大於第K+1堆中任意一塊積木的編號(2<=K<=M)。
2.對於每一堆積木,遊戲者要將它們垂直摞成一根柱子,並要求滿足下面兩個條件:
(1)除最頂上的一塊積木外,任意一塊積木的上表面同且僅同另一塊積木的下表面接觸,並且要求下面的積木的上表面能包含上面的積木的下表面,也就是說,要求下面的積木的上表面的兩對邊的長度分別大於等於上面的積木的兩對邊的長度。
(2)對於任意兩塊上下表面相接觸的積木,下面的積木的編號要小於上面的積木的編號。
最後,根據每人所摞成的M根柱子的高度之和來決出勝負。
請你編一程式,尋找一種摞積木的方案,使得你所摞成的M根柱子的高度之和最大。
相關推薦
Vijos P1464 積木遊戲(動態規劃)
積木遊戲 SERCOI 最近設計了一種積木遊戲。每個遊戲者有N塊編號依次為1 ,2,…,N的長方 體積木。對於每塊積木,它的三條不同的邊分別稱為"a邊"、"b邊"和"c邊" 遊戲規則如下: 1、從N塊積木中選出若干塊,並將它們分成M(l<=M<=N) 堆,稱為第1堆,第2 堆…,第M堆。每堆至少
Vijos P1218 數字遊戲(動態規劃,環形DP)
丁丁最近沉迷於一個數字遊戲之中。這個遊戲看似簡單,但丁丁在研究了許多天之後卻發覺原來在簡單的規則下想要贏得這個遊戲並不那麼容易。遊戲是這樣的,在你面前有一圈整數(一共n個),你要按順序將其分為m個部分,各部分內的數字相加,相加所得的m個結果對10取模後再相乘,最終得到一個數k。遊戲的要求是使你所得的k最大或
【BZOJ3991】尋寶遊戲(動態規劃)
維護 inline printf insert struct print clu getch map 【BZOJ3991】尋寶遊戲(動態規劃) 題面 BZOJ 題解 很明顯,從任意一個有寶藏的點開始,每次走到相鄰的\(dfs\)的節點就行了。 證明? 類似把一棵樹上的關鍵點
BZOJ3875 AHOI2014/JSOI2014騎士遊戲(動態規劃)
老師 con ack 有意思 mes cstring cto -s bzoj3875 容易想到設f[i]為殺死i號怪物所消耗的最小體力值,由後繼節點更新。然而這顯然是有後效性的,正常的dp沒法做。 雖然spfa已經死了,但確實還是挺有意思的。只需要用spfa來更新d
Vijos P1133 裝箱問題(動態規劃,01揹包,NOIP)
noip2001普及組第四題 樣例分析 輸入容積24,6件物品 因為容量最多可達20000,為節省空間,只用一維陣列,用f[j]表示在容積為j時所裝物品所佔用的最大體積 對每一件物品,有放或不放兩種策略,不放,則體積仍為之前的f[j];放,則須留有足夠的空間,並佔用一定的體積,即f[j-v]+v 為了保
演算法練習---跳躍遊戲二(動態規劃)
題目描述: 給定一個非負整數陣列,假定你的初始位置為陣列第一個下標。 陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。 你的目標是到達最後一個下標,並且使用最少的跳躍次數。 例如: A=[2,3,1,1,4],到達最後一個下標的最少跳躍次數為 2。(先跳躍 1
hud2059龜兔賽跑(動態規劃)
n+1 動物 include output script text sam 起跑線 other 龜兔賽跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T
ship(動態規劃)
動態規劃 輸出 一個 子序列 升序 端點 如果 2個 長度 (ships.pas/c/cpp) 來源:《奧賽經典》(提高篇)【問題描述】PALMIA國家被一條河流分成南北兩岸, 南北兩岸上各有N個村莊。 北岸的每一個村莊有一個唯一的朋友在南岸,且他們的朋友村莊彼此不同。每一
計蒜客--爬樓梯 (動態規劃)
tle nbsp vector main long 3.1 false n) 方法 假設你現在正在爬樓梯,樓梯有 nn 級。每次你只能爬 11 級或者 22 級,那麽你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1\leq n \leq 50)n
【算法學習】雙調歐幾裏得旅行商問題(動態規劃)(轉)
png .com 16px 我們 pan 子結構 最小 而且 復雜度 雙調歐幾裏得旅行商問題是一個經典動態規劃問題。《算法導論(第二版)》思考題15-1和北京大學OJ2677都出現了這個題目。 旅行商問題描述:平面上n個點,確定一條連接各點的最短閉合旅程。這個解的一般形式
(動態規劃)4977:怪盜基德的滑翔翼
受傷 問題 while 超級 ret 輸入數據 col std namespace 描述 怪盜基德是一個充滿傳奇色彩的怪盜,專門以珠寶為目標的超級盜竊犯。而他最為突出的地方,就是他每次都能逃脫中村警部的重重圍堵,而這也很大程度上是多虧了他隨身攜帶的便於操作的滑翔翼。 有一天
(動態規劃)4978:寵物小精靈之收服
能夠 出了 哪些 整數 範圍 -- power 必須 方程 描述 寵物小精靈是一部講述小智和他的搭檔皮卡丘一起冒險的故事。 一天,小智和皮卡丘來到了小精靈狩獵場,裏面有很多珍貴的野生寵物小精靈。小智也想收服其中的一些小精靈。然而,野生的小精靈並不那麽容易被收服。對於每一個野
(動態規劃)6049:買書
動態 種類 blog namespace iostream sin += out bsp 描述 小明手裏有n元錢全部用來買書,書的價格為10元,20元,50元,100元。 問小明有多少種買書方案?(每種書可購買多本) 輸入 一個整數 n,代表總共錢數。(0 <=
decode-ways(動態規劃)
mine nta sage 方法 表示 subst nco ssa 嘗試 題目描述 A message containing letters fromA-Zis being encoded to numbers using the following map
Triangle(動態規劃)
ret from 新的 選擇 位置 ive 一個 top 原理 題目描述 Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent
【WC2001】【cogs358】高性能計算機(動態規劃)
結束 輸入輸出 計算機 stdout 所有 主存 時間 span 要花 【WC2001】【cogs358】高性能計算機(動態規劃) ##題面 【問題描述】 現在有一項時間緊迫的工程計算任務要交給你——國家高性能並行計算機的主管工程師——來完成。為了盡可能充分發揮並行計算機的
【BZOJ1899】午餐(動態規劃)
需要 記錄 表示 列隊 其中 truct ble read namespace 【BZOJ1899】午餐(動態規劃) 題面 BZOJ 題解 我太弱了 這種\(dp\)完全做不動。。 首先,感性理解一些 如果所有人都要早點走, 那麽,吃飯時間長的就先吃 吃飯時間短的就晚點吃
【BZOJ2998】Problem A(動態規劃)
gpo pre com space main ostream 最大 == while 【BZOJ2998】Problem A(動態規劃) 題面 BZOJ 題解 一個人的成績範圍可以確定為一個區間 這樣就變成了 選擇若幹區間,不重合, 每個區間有個權值,求最大權值和 這樣就可
ALGO-3 K好數(動態規劃)
con 正整數 const 方程 自然 自然數 include 由於 can 問題描述 如果一個自然數N的K進制表示中任意的相鄰的兩位都不是相鄰的數字,那麽我們就說這個數是K好數。求L位K進制數中K好數的數目。例如K = 4,L = 2的時候,所有K好數為11、13、20
ALGO-17 乘積最大(動態規劃)
最大乘積 插入 ont return 沒有 主持人 temp 國際 規劃 問題描述 今年是國際數學聯盟確定的“2000——世界數學年”,又恰逢我國著名數學家華羅庚先生誕辰90周年。在華羅庚先生的家鄉江蘇金壇,組織了一場別開生面的數學智力競賽的活動,你的一個好朋友XZ也有