codevs線段覆蓋 動態規劃

2021-07-02 04:40:13 字數 912 閱讀 6819

題目描述 description

給定x軸上的n(0輸入描述 input description

輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。

輸出描述 output description

輸出第一行是乙個整數表示最多剩下的線段數。

樣例輸入 sample input 3

6  3

1  3

2  5

樣例輸出 sample output 2

資料範圍及提示 data size & hint 0

#include#include#include#include#include#include#define inf -99999999

using namespace std;

int x[100];

int y[100];

int b[100]=;

int main()

}for(int i=1;i<=n-1;i++)//迴圈為線段排序:橫座標小的在前,橫座標相等的縱座標小的在前

}if(k!=i)

}//下面是**的核心部分,三重優化

int temp=x[1];

for(int i=2;i<=n;i++)

//第一重:橫座標相同的歸於一類,後面幾個因為縱座標比該類第乙個大,故包含第乙個,標記為1

for(int i=1;i<=n;i++)

}//第二重: 兩層for迴圈掃一遍,存在徹底包含關係的,將包含的那一組標記為1

int l=inf-1,r=inf;//l和r就是兩個參照物,類似於無窮大的乙個概念

for(int i=1;i<=n;i++)}}

//第三重:排除交叉覆蓋,即你中有我我中有你的可能,一重迴圈即可

cout<

Codevs 線段覆蓋1 2 3 4 5

對於線段覆蓋1 3,貪心,每次選取末端點靠前的,o n 掃一遍即可 話說這個題似乎排序最佔時間 當然dp也可以 include include define maxn 1000000 5 using namespace std struct line l maxn int main sort l 1...

codeVS 1214 線段覆蓋

題目描述 description 給定x軸上的n 0輸入描述 input description 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出描述 output description 輸出第一行是乙個整數表示最多剩下的線段數。樣例輸入 samp...

codevs1214 線段覆蓋

題目描述 description 給定x軸上的n 0 輸入描述 input description 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出描述 output description 輸出第一行是乙個整數表示最多剩下的線段數。樣例輸入 sam...