week3 作業B 區間選點

2021-10-04 03:55:29 字數 671 閱讀 8698

數軸上有 n 個閉區間 [a_i, b_i]。取盡量少的點,使得每個區間內都至少有乙個點(不同區間內含的點可以是同乙個)

第一行1個整數n(n<=100)

第2~n+1行,每行兩個整數a,b(a,b<=100)

乙個整數,代表選點的數目

21 5

4 63

1 32 5

4 6在區間中選出最小的右端點temp,然後找出所有的左端點比temp小的區間,剔除,進行迴圈,如果最後,左端點最大的區間的左端點小於或等於temp,此時讓選點計數器加一,並退出迴圈。

貪心策略:每次選取右端最小的點,將其所在的區間全部剔除。

#include

#include

#include

using

namespace std;

struct section

;bool

cmp1

(section s1, section s2)

bool

cmp2

(section s1, section s2)

intmain()

} count++;}

cout << count << endl;

return0;

}

區間選點(week3 作業B)

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output 乙個整數,代表選點的數目 examples input 21 5 4 6out...

Week3作業B 區間選點

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output 乙個整數,代表選點的數目 sample input 21 5 4 6sampl...

week3作業 B 區間選點

數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output乙個整數,代表選點的數目examples input2 1 54 6 output...