題目描述
有m個盒子,第i個盒子的長尾hi
,寬為wi
。如果兩個盒子i,j滿足hi
且wi,則盒子i能夠放入盒子j。按照上述要求堆放盒子,則最少能剩下多少堆?
輸入第一行有乙個正整數 t ,表示資料組數(不多於20)。每組資料第一行為m,表示盒子個數,1 ≤ m ≤ 20000。接下來一樣有2m個正整數w
1, h
1,w2, h
2, ... ,wm
, hm
,分別表示盒子尺寸。其中對於任何i,1 ≤ wi
, hi
≤ 10000.
輸出每一組測試資料輸出一樣,為最少的堆數。
樣例輸入
4樣例輸出320 30 40 50 30 40
420 30 10 10 30 20 40 50
310 30 20 20 30 10
410 10 20 30 40 50 39 51
1232看到題目大家都覺得很熟悉,不就是dp問題嗎?可是n=20000;不能用n^2的dp,只能用nlgn的方法
#include#include#include
using
namespace
std;
const
int maxn=20001
;struct
node
box[maxn];
inta[maxn];
bool
cmp(node xx,node yy)
void find(int x,int y,int
v) a[x]=v;
}int
main()
}printf(
"%d\n
",len);
}return0;
}
第二屆藍橋杯 中獎計算
題目 中獎計算 某 活動的規則是 每位參與者在紙上寫下乙個8位數的號碼。最後通過搖獎的辦法隨機產生乙個8位數字。參與者寫下的數字中最多有多少個連續位與開獎號碼中的相同,則稱為中了幾個號。例如 小張寫的數字是 12345678,而開獎號碼是 42347856。則稱小張中了3個號,因為其中最長的相同連續...
第二屆藍橋杯 n進製小數
題目 n進製小數 將任意十進位制正小數分別轉換成2,3,4,5,6,7,8,9進製正小數,小數點後保留8位,並輸出。例如 若十進位制小數為0.795,則輸出 十進位制正小數0.795000 轉換成 2 進製數為 0.11001011 十進位制正小數0.795000 轉換成 3 進製數為 0.2101...
2017第二屆ccsp感悟
今年十月參加了今年在福州舉行的ccsp比賽,比賽從早上8點到晚上十點鐘,八點半左右,開始放出了這次比賽的五道題目,比賽剛開始的時候,因為沒有使用過linux系統,所以發現在測試時不能貼上需要測試的資料到測試環境,本來想著要不然手動輸入算了,後來發現,手動輸入樣例太費事了,於是想用檔案的輸入輸出方式,...