春校賽–求索溪邊的磚 (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 提交狀態 題目描述 過年打麻將果然是一項必備技能 霧 打麻將的起手式是整理好自己手中的牌,現在你有十三張牌 只可能出現一萬到九萬,一筒到九筒,一條到九條 你要把這些牌整理好,使得相同花色的牌必須在連續的唯一一段 即所有的 萬 要放在一起...