NYOJ 16 矩形巢狀

2021-09-06 05:50:16 字數 1761 閱讀 5325

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4

描述

有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x(a,b)可以巢狀在矩形y(c,d)中當且僅當a

輸入

第一行是乙個正正數n(0輸出

每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行

樣例輸入

1

101 2

2 45 8

6 10

7 93 1

5 812 10

9 72 2

樣例輸出

5

1

//wa2//

貪心思想wa,反例:<100 ,1> <9 6> <8 3>正確答案是2,若按下面的貪心思想則答案是0

3 #include 4 #include 5 #include 6

using

namespace

std;

7 typedef struct

node

8node;

11 node ch[1005

];12

int cmp(const

void *a,const

void *b)

1321

intmain()

2235

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

3644 ch[i].length = a,ch[i].width =b;45}

46if(num==1)47

51 qsort(&ch[i],num,sizeof

(node),cmp);

52int cnt = 1;//

不是0

53for(i=1;i<=num;i++)

54if(ch[i].length>=ch[i+1].length&&ch[i].width>=ch[i+1

].width)

55 cnt++;

56 cout

58return0;

59 }

1 #include 2 #include 3 #include 4

using

namespace

std;

5 typedef struct

node

6node;

9 node ch[1005

];10

int f[1005

];11

int cmp(const

void *a,const

void *b)

1220

intmain()

2134

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

3543 ch[i].length = a,ch[i].width =b;

44 f[i] = 1;45

}46if(num==1)47

51 qsort(&ch[1],num,sizeof

(node),cmp);

52int max = 0;53

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

5463 cout

65return0;

66 }

nyoj 16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當ab套在 6,2 內,但不能巢狀在 3,4 中。你的任務是選出盡可 能多的矩形排成一行,使得除最後乙個外,每乙個矩形都可以巢狀...

NYOJ 16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 ...

NYOJ16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 1...