zjnu1189 土地租用(完整版)

2022-04-18 07:46:10 字數 1533 閱讀 2819

time limit:1000ms

memory limit:65536k

total submissions:77

accepted:10

description

隨著yyhs的oi集訓隊人數急劇增加,原有的小機房已經容納不了數量龐大的隊員。

於是史老師決定租用一些實驗室機位供隊員們訓練,他正在考慮為n (1 <= n <= 50,000)位隊員租用機位。實驗室管理員根據要求給出了n個機位的長和寬,每個機位的長寬滿足(1 <= 寬 <= 1,000,000; 1 <= 長 <= 1,000,000).

而機位的租用**是它的面積,實驗室管理員也提出,可以同時租用多個機位. 租用這一組機位的**是它們最大的長乘以它們最大的寬, 但是機位的長寬不能交換. 如果想租下乙個3x5的機位和乙個5x3的機位,則他需要付5x5=25.

於是問題出現了,史老師希望租下所有的機位,但是他發現分組來租這些機位可以節省經費. 他需要你幫助他找到最小的經費.

input

* 第1行: 乙個數: n

* 第2..n+1行: 每行包含兩個數,分別為機位的長和寬

output

* 第一行: 最小的可行費用.

sample input

4

100 1

15 15

20 5

1 100

sample output

這題如果是用n*n的dp,會超時,所以要用斜率優化,和hdu3669差不多的思路。

#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define inf 999999999999999999

#define maxn 50050

struct nodea[maxn],b[maxn];

bool cmp(node a,node b)

ll dp[maxn];

ll q[1111111];

ll getup(int x)

ll getdown(int x)

int main()

sort(a+1,a+1+n,cmp);

tot=1;b[tot].w=a[1].w;b[tot].h=a[1].h;

for(i=2;i<=n;i++)

int front,rear;

front=1;rear=1;

q[rear]=0;

for(i=1;i<=tot;i++)

rear++;

q[rear]=i;

}printf("%lld\n",dp[tot]);

}return 0;

}

1189 階乘分數

1189 階乘分數 基準時間限制 1 秒 空間限制 131072 kb 1 n 1 x 1 y 0,給出n,求滿足條件的整數解的數量。例如 n 2,1 2 1 3 1 6,1 2 1 4 1 4。由於數量可能很大,輸出mod 10 9 7。input 輸入乙個數n 1 n 1000000 outpu...

zjnu 1182 能量項鍊

這道題和石子歸併其實是同樣的題目。題意 那邊寫的不是很清楚 首先給你n個珠子,每個珠子都有兩個屬性,分別是頭標記與尾標記,然後分別給出n個數,分別代表的是這些珠子的頭標記。前一顆珠子的尾標記一定等於後一顆珠子的頭標記。如果前一顆能量珠的頭標記為m,尾標記為r,後一顆能量珠的頭標記為r,尾標記為n,則...

ZJNU 1067 約瑟夫 中級

打表處理 case 1超時 對m進行列舉,每次列舉進行一次判斷 因為好人壞人均為k個,那麼只要讓下乙個死亡的人的位置p保證在1 剩餘壞人數量之間即可,不滿足則直接break列舉下乙個m 實際上對於m,因為m必須是 2kc 1,2kc k c n 之間的數,所以還能再優化,但下面的 已經能夠在78ms...