題目描述 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...