春校賽 求索溪邊的磚

2021-09-20 04:20:19 字數 1393 閱讀 4768

春校賽–求索溪邊的磚 (10分)

眾所周知,求索溪邊堆了很多磚。

這些磚的長寬高規格不太一樣。 一共有n種磚,第i種磚的長寬高分別為, ,每種磚有無限多。學校開展桃花節需要將這些磚搬走, 高階搬磚工小胖接了活。

我們搬磚時都是將磚疊成一摞再搬。小胖的力氣非常大,當然希望盡可能的摞到最高, 但是只有上面磚的底面兩條邊都小於下面磚底面相對的兩條邊時,才能疊穩,注意磚可以旋轉。(如: 長寬高為[3,4,5]的磚能疊在[2,5,5],[5,4,3]上,不能疊在[2,4,3]上)。 幫小胖算算他第一次最多能搬走多少磚。

輸入描述

多組輸入 , 每組乙個整數n表示磚的種類,接下來n行每行3個整數x,y,z

n=0表示輸入結束。

輸出描述

n 行,每行乙個整數表示該組樣例中第一次最多能搬磚的數量

輸入樣例

1

10 20 30

26 8 10

5 5 5

71 1 1

2 2 2

3 3 3

4 4 4

5 5 5

6 6 6

7 7 7

531 41 59

26 53 58

97 93 23

84 62 64

33 83 27

0

輸出樣例

237

6

明顯的矩形巢狀,但我第一次寫的時候不知道用dp啊,蠢死啊,加油啊!

上**

#include"iostream" 

#include"stdio.h"

#include"algorithm"

#include"cstring"

using namespace std;

struct jx

s[10001];

bool cmp1(int a,int b)

int map[100][100],dp[100];

int find(int x,int n)

return dp[x];

}int main()

sort(a,a+3,cmp1);

if(l==3)

else

}for(int i = 0;i < p;i++)

for(int j = 0;j < p;j++)

if(i!=j)

for(int i = 0;i < p;i++)

if(!dp[i])

find(i,p);

int max = 0;

for(int i = 0;i < p;i++)

cout << max + 1

}

HIT2018春校賽 I題 略解

題目描述如下 甲乙丙丁四人遊戲,甲有二整數 x 和 y,四人已知 2 x y n,但乙丙丁未知 x 和 y 確值。現在,甲告訴乙 x y 的值,甲告訴丙 x y 的值,下面四人對話 乙 我不知道 x 和 y 的確值,但我知道丙不知道 x 和 y 的確值 丙 我原不知道 x 和 y 的確值,但我現在知...

校賽1007題的經典解法

problem description payne和quincy是一對好basefriend,即使在 六一光棍節 這天,寂寞無聊的payne決定調戲一下quincy。他在一張紙上寫下了一串數字,然後來到quincy面前。嗨,quincy,我看你也挺無聊的,來驗證一下你的智商吧。噢,payne,你又有...

HAUT校賽 某科學的打麻將

時間限制 1 秒 記憶體限制 64 mb 提交 18 解決 2 提交狀態 題目描述 過年打麻將果然是一項必備技能 霧 打麻將的起手式是整理好自己手中的牌,現在你有十三張牌 只可能出現一萬到九萬,一筒到九筒,一條到九條 你要把這些牌整理好,使得相同花色的牌必須在連續的唯一一段 即所有的 萬 要放在一起...