1214 線段覆蓋wiki oi

2022-05-08 20:42:12 字數 1098 閱讀 1831

題目描述 description

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

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

輸出描述 output description

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

樣例輸入 sample input

6  3

1  3

2  5

樣例輸出 sample output

資料範圍及提示 data size & hint

0分析:

貪心解法:首先將線段端點調整為左端點小於(或等於)右端點;第二,根據右端點將線段從小到大排序;第三,掃瞄一遍,每次遇到的第乙個與當前的max不想交的即為最優選擇。

1 #include2 #include

3 #include4 #include5 #include6 #include7 #include 8

using

namespace

std;

9struct

node

10s[101

];13

intcmp(node x,node y)

1417

intmain()

1826 sort(s,s+n,cmp);

27int ans=0,max=-1000;28

for(int i=0; i)

2935

}36 cout37return0;

38 }

序列型動態規劃(dp):前兩步同上,第三步,dp[i] = max(dp[i], (dp[j]+1))。第四,選擇dp陣列中最大值即為結果。

#include #include 

using

namespace

std;

intmain()

} for(int i=n-1; i>0; i--)

}}

int max = 0;

for(int i=1; i)

}cout

}

wikioi 1214 線段覆蓋

給定x軸上的n 0 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出第一行是乙個整數表示最多剩下的線段數。3 6 3 1 3 2 5 2 0貪心解法 首先將線段端點調整為左端點小於 或等於 右端點 第二,根據右端點將線段從小到大排序 第三,掃瞄一遍,...

1214 線段覆蓋

貪心解法 解題思路 首先將線段端點調整為左端點小於 或等於 右端點 第二,根據右端點將線段從小到大排序 第三,掃瞄一遍,每次遇到的第乙個與當前的max不相交的即為最優選擇。實現 include includeusing namespace std const int n 101 struct nod...

1214 線段覆蓋 水

時間限制 1 s 空間限制 128000 kb 題目等級 gold 給定x軸上的n 0輸入描述 input description 輸入第一行是乙個整數n。接下來有n行,每行有二個空格隔開的整數,表示一條線段的二個端點的座標。輸出描述 output description 輸出第一行是乙個整數表示最...