SCU 2930 積木城堡(n次揹包)

2021-07-10 04:55:20 字數 1559 閱讀 8453

c - 積木城堡

time limit:0msmemory limit:0kb64bit io format:%lld & %llu

submit

status

practice

scu 2930

system crawler  (2016-02-26)

description

xc的兒子小xc最喜歡玩的遊戲用積木壘漂亮的城堡。城堡是用一些立方體的積木壘成的,城堡的每一層是一塊積木。

小xc是乙個比他爸爸xc還聰明的孩子,他發現壘城堡的時候,如果下面的積木比上面的積木大,那麼城堡便不容易倒。

所以他在壘城堡的時候總是遵循這樣的規則。小xc想把自己壘的城堡送給幼兒園裡漂亮的女孩子們,這樣可以增加他的好感度。

為了公平起見,他決定把送給每個女孩子一樣高的城堡,這樣可以避免女孩子們為了獲得更漂亮的城堡而引起爭執。

可是他發現自己在壘城堡的時候並沒有預先考慮到這一點。所以他現在要改造城堡。

由於他沒有多餘的積木了,他靈機一動,想出了乙個巧妙的改造方案。

他決定從每乙個城堡中挪去一些積木,使得最終每座城堡都一樣高。為了使他的城堡更雄偉,他覺得應該使最後的城堡都盡可能的高。

任務:請你幫助小xc編乙個程式,根據他壘的所有城堡的資訊,決定應該移去哪些積木才能獲得最佳的效果。第一行是乙個整數t(1<=t<=10),表示測試資料的組數;每一組測試資料的第一行是乙個整數n(n<=100),表示一共有幾座城堡。

以下n行每行是一系列非負整數,用乙個空格分隔,按從下往上的順序依次給出一座城堡中所有積木的稜長。用-1結束。

一座城堡中的積木不超過100塊,每塊積木的稜長不超過100。對於每一組測試資料輸出乙個整數,表示最後城堡的最大可能的高度。如果找不到合適的方案,則輸出0。每一組測試資料一行。1

22 1 -1

3 2 1 -13noi

思路:
這道題目真的沒想到竟然是0-1揹包,只是這個題目是進行n次的0-1揹包。
參考文章:
ac**:
#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

const int t=150;

#define inf 0x3f3f3f3fl

#define mod 1000000000

typedef long long ll;

typedef unsigned long long ull;

struct node

a[t];

int main()

}} bool flag ;

for(j=100*100;j>=0;--j){

flag = true;

for(i=0;i

293 翻轉遊戲

你和朋友玩乙個叫做 翻轉遊戲 的遊戲,遊戲規則 給定乙個只有 和 的字串。你和朋友輪流將 連續 的兩個 反轉成 當一方無法進行有效的翻轉時便意味著遊戲結束,則另一方獲勝。請你寫出乙個函式,來計算出第一次翻轉後,字串所有的可能狀態。示例 輸入 s 輸出 1.字串操作 class solution ve...

2 9 3 arcTo 畫圓角矩形

charset utf 8 arcto 畫圓角矩形title body canvas style head id canvas width 1000 height 600 canvas body var canvas document.getelementbyid canvas context ca...

MT 293 拐點處切線

2018浙江高考壓軸題 已知函式 f x sqrt ln x.2 若 a le 3 4 ln 2,證明 對於任意 k 0 直線 y kx a 與曲線 y f x 有唯一的公共點.分析 等價於 k dfrac ln x a 有唯一解.記 g x dfrac ln x a 則 g x dfrac 1 a...