1 条题解

  • 1

    考查内容

    结构体排序+贪心

    思路分析

    一眼贪心,我们应该把节目按结束时间先后排序。 证明:如果两个节目有重叠,看先结束的会有更多时间看剩下的节目。所以贪心成立。

    code

    #include<bits/stdc++.h>
    using namespace std;
    struct tv{
    	int l,r;
    }a[200005];
    bool cmp(tv a,tv b){//按结束时间排序
    	return a.r<=b.r;
    }
    int now,n,cnt;
    int main(){
    	freopen("tv.in","r",stdin);
    	freopen("tv.out","w",stdout);
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i].l>>a[i].r;
    	}
    	sort(a,a+n,cmp);
    	now=0;
    	for(int i=0;i<n;i++){
    		if(a[i].l>=now){//如果可以看这个节目
    			cnt++;
    			now=a[i].r;//更新
    		}
    	}
    	cout<<cnt;
    	return 0;
    }
    
    • 1

    信息

    ID
    773
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    3
    已通过
    2
    上传者