title:數軸上有 n 個閉區間 [x_i, y_i]。取盡量少的點,使得每個區間內都至少有乙個點(不同區間內含的點可以是同乙個)。
input:第一行1個整數n(n<=100),第2~n+1行,每行兩個整數x,y(x,y<=100)。
output:乙個整數,代表選點的數目。
分析:
總結:貪心準則直接決定了貪心演算法是否成功,故在確定貪心準則時需要仔細考慮,必要時進行簡單的證明。
interval結構體表示區間
結構體陣列a表示所有區間
n:區間個數
numbers:所用的點的個數
int judge(int now),now是當前需要標記的區間下標。
該函式按照順序跳過已經標記的區間,返回值為接下來需要標記的區間的標號。若返回值為-1,則代表已經將所有區間標記完全,不需要再進行標記。
#include#includeusing namespace std;
#define range 101
struct interval
;interval a[range];
int n = 0, numbers = 0;
int judge(int now)
if (i == n)
return -1;
return i;
}void func(int now=0)
bool com(const interval& a, const interval& b)
int main()
sort(a, a + n, com);
func();
cout << numbers;
return 0;
}
Week 3 區間選點
數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 input 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 output 乙個整數,代表選點的數目 樣例輸入1 2 1 54 6樣例輸出1 1樣例輸入2...
Week3 區間選點 區域性貪心
題目內容 數軸上有 n 個閉區間 a i,b i 取盡量少的點,使得每個區間內都至少有乙個點 不同區間內含的點可以是同乙個 輸入格式 第一行1個整數n n 100 第2 n 1行,每行兩個整數a,b a,b 100 輸出格式 乙個整數,代表選點的數目 樣例 input 21 5 4 6output ...
區間選點(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...