[蓝桥杯][算法提高VIP]线段和点(排序+贪心)
生活随笔
收集整理的這篇文章主要介紹了
[蓝桥杯][算法提高VIP]线段和点(排序+贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
有n個點和m個區間,點和區間的端點全部是整數,對于點a和區間[b,c],若a> =b且a< =c,稱點a滿足區間[b,c]。
求最小的點的子集,使得所有區間都被滿足。
數據規模和約定
1< =n,m< =10000
0< =點和區間的坐標< =50000
輸入
第一行兩個整數n m
以下n行 每行一個整數,代表點的坐標
以下m行 每行兩個整數,代表區間的范圍
輸出
輸出一行,最少的滿足所有區間的點數,如無解輸出-1。
樣例輸入
5 5
2
6
3
8
7
2 5
3 4
3 3
2 7
6 9
樣例輸出
2
這兩天做了幾道線段和點的貪心問題,很傷。。
總結起來,這種問題大概率要排序,按照左端點右端點都有可能,根據具體題意而定。
這道題目,我們先按照左端點升序排序,如果左端點相同,則按照右端點降序排序。這樣我們就能每次將點推到一個更遠的位置。而這樣做的次數,就是我們花費的點數。
代碼如下:
努力加油a啊,(o)/~
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的[蓝桥杯][算法提高VIP]线段和点(排序+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#保留有效位数
- 下一篇: 33层高楼为什么27楼和28楼最贵 次顶