bzoj 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛

来源:互联网 发布:删除数据库表中的数据 编辑:程序博客网 时间:2024/05/18 19:21

→题目链接←


最开始看到是USACO就想n^2搞,但是看到100000就虚了...


先以左端点从小到大为第一关键字排序

这样就会保证,当我们从扫到 i 时,如果MaxRight大于等于 i 的right,那么 i 一定是不可行的

所以如果碰到这样的状况,就令ans=min(ans,i)  *下标从0开始

复杂度nlogn

这...应该算贪心吧...


代码:

#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct node{int l,r,num;friend bool operator < (node a,node b){return a.l<b.l;}};int n;node a[100010];int main(){scanf("%d",&n);for(int i=0; i<n; i++){scanf("%d%d",&a[i].l,&a[i].r);a[i].num=i;}sort(a,a+n);int Max=0,ans=n;for(int i=0; i<n; i++){if(a[i].r<=Max)ans=min(ans,a[i].num);Max=max(Max,a[i].r);}printf("%d\n",ans);return 0;}


原创粉丝点击