week3 區間選點

2021-10-03 12:35:17 字數 959 閱讀 8898

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...