選擇不相交區間

2021-06-19 12:36:40 字數 551 閱讀 1004

/****思路:

為什麼要這樣做呢;

首先分析一下題意,就是選擇盡量多的不相交區間,那麼我們就要去掉一些區間,使剩下

的區間不相交,那麼我們要去掉什麼樣的區間呢?

我們假設區間 [a1,b1],[a2,b2]

1,如果a1b2,我們說區間1包含區間2,那麼我們就要去掉區間1;

2,如果a1>a2&&b1>b2, 這時候我們仍然要去掉區間1,因為這樣能夠是我們選擇的時間更多;

3,4,

3和4 只不過是把a1和a2變變順序

結合一二兩點那麼演算法也就出來了

1,首先對區間按照b排序,那麼我們只要a2>b1 的也就是變相的去掉了,1,2,哪兩種情況

*/#include#include#includeusing namespace std;

struct node

a[10008];

bool cmp(node a,node b)

int main()

}printf("%d\n",cn);

}}

選擇不相交區間

選擇不相交區間題目描述 數軸上有n開區間 ai,bi 請選擇盡量多的 區間,使其兩兩不相交。輸入第一行n 之後n行,每行兩個數分別為ai,bi 輸出最多能選擇的區間個數 樣例輸入 31 3 2 43 5 樣例輸出2提示 對於20 的資料,n 10 對於50 的資料,n 1000 對於70 的資料,n...

選擇不相交區間(貪心)

數軸上有n個區間 ai,bi 要求選擇盡量多個區間,使得這些區間兩兩沒有公共點。貪心策略 按照b1 b2 b3 的方式排序,然後從前向後遍歷,每當遇到可以加入集合的區間,就把它加入集合。集合代表解的集合 證明 我們對a1,a2 的關係分以下幾種情況考慮 1 a1 a2。此時區間2包含區間1。這種情況...

區間貪心之選擇不相交區間

區間相交問題 description 給定x軸上n個閉區間。去掉盡可能少的閉區間,使剩下的閉區間都不相交。給定n個閉區間,計算去掉的最少閉區間數。input 輸入第一行是正整數n n 100 表示閉區間數。接下來的n行中,每行有兩個整數 可以是負數 分別表示閉區間的兩個數端點。output 輸出去掉...