題目描述 description
n有n種石塊,石塊能無限**。每種石塊都是長方體,其中第i種石塊的長、寬、高分別為li、wi、hi。石塊可以旋轉,使得其中兩維成為長度和寬度,第三維成為高度。如果要把乙個石塊放在另乙個石塊上面,必須保證上面石塊的長和寬都分別嚴格小於下面石塊的長和寬。這意味著,即使兩塊長寬相同的石塊也不能堆砌起來。
現在神犇想知道,最多能用上多少塊石頭呢?
輸入描述 input description
第一行,n;
以下n行,每行三個數,表示第i種石頭的長寬高。
輸出描述 output description
乙個整數,表示最多能用上多少塊石頭。
樣例輸入 sample input
3
1 1 1
2 2 2
3 3 4樣例輸出 sample output
資料範圍及提示 data size & hint
n≤50000,其餘數字≤maxlongint。
/*view code二分的最長嚴格上公升子串行,因為是嚴格的,所以按照a排序時,b要從大
到小排,曾經試過二維的,但怎麼改都不對。
*/#include
#include
#include
#define m 300010
using
namespace
std;
intf[m],cnt;
struct
node
;node e[m];
intn;
bool cmp(const node&x,const node&y)
int erfen(int l,int r,int
x)
returnl;}
intmain()
sort(e+1,e+cnt+1
,cmp);
f[1]=e[1].b;int len=1
;
for(int i=2;i<=cnt;i++)
if(e[i].b>f[len])
f[++len]=e[i].b;
else
printf("%d
",len);
return0;
}
codevs 3185 佇列練習1
題目描述 description 給定乙個佇列 初始為空 只有兩種操作入隊和出隊,現給出這些操作請輸出最終的隊頭元素。操作解釋 1表示入隊,2表示出隊 輸入描述 input description n 操作個數 n個操作 如果是入隊則後面還會有乙個入隊元素 具體見樣例 輸入保證隊空時不會出隊 輸出描...
codevs 3185 佇列練習1
題目描述 description 給定乙個佇列 初始為空 只有兩種操作入隊和出隊,現給出這些操作請輸出最終的隊頭元素。操作解釋 1表示入隊,2表示出隊 輸入描述 input description n 操作個數 n個操作 如果是入隊則後面還會有乙個入隊元素 具體見樣例 輸入保證隊空時不會出隊 輸出描...
codevs3110二叉堆練習1
題目描述 description 給定n n 500,000 和n個整數 較有序 將其排序後輸出。輸入描述 input description n和n個整數 輸出描述 output description n個整數 公升序 樣例輸入 sample input 512 11 10 8 9 樣例輸出 s...