题解: 区间合并(opj 2-4-7620)
生活随笔
收集整理的這篇文章主要介紹了
题解: 区间合并(opj 2-4-7620)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一開始輕視這道題了,想用各種各樣奇怪的區間標記把這道題水掉,結果WA聲一片。。(我大意了,沒有AC!)
后來大腦開始思考,貪心解決掉了,AC快樂~~(忽略這道題來自分治…qwq)
思路
先按左端點sort,從頭往后看此時往右延伸到的max是否比下一個的左端點大或等,是則OK,繼續,否則一定不行了
代碼
#include
#include
#include
#include
#include
using namespace std;
const int M=INT_MAX;
struct line{
int st,ed;
}p[50005];
bool cmp(line x,line y){
return x.st<y.st;
}
int main(){
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d%d",&p[i].st,&p[i].ed);
}
sort(p+1,p+1+n,cmp);
int mx=p[1].ed;
for(int i=1;i<=n;i++){
if(mx<p[i].st){
printf(“no”);
return 0;
}
mx=max(mx,p[i].ed);
}
printf("%d %d",p[1].st,mx);
return 0;
}
總結
以上是生活随笔為你收集整理的题解: 区间合并(opj 2-4-7620)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽电脑配置推荐2021(魔兽电脑配置推
- 下一篇: 不止代码:导弹拦截