zoukankan      html  css  js  c++  java
  • #loj整理 活动安排

    贪心

    loj链接

    思路就是按照结束时间从小到大排序,最后找到可以安排的活动

    原因:按开始时间排序,可能导致持续时间很长的项目被选中

    按持续时间排序,可能导致时间很短的正好跨过两个活动的开头和结尾

    代码

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<bits/stdc++.h>
    using namespace std;
    int n,ans,tmp;
    struct EVE{
    	int s,f;
    }e[2000]; 
    bool cmp(EVE a,EVE b){
    	return a.f < b.f;
    }
    int main(){
    	cin >> n;
    	for(int i = 1;i <= n; i++)
    		cin >> e[i].s >> e[i].f;
    	sort(e+1,e+1+n,cmp);
    	for(int i = 1;i <= n; i++){
    		tmp = e[i].f;
    		ans++;
    		while(e[i].s < tmp) i++;
    		i--;
    	}
    	cout << ans << endl;
    	return 0;
    }//lcez_cyc
    
  • 相关阅读:
    c基础
    一维数组,字符数组
    循环结构
    分支结构
    结构体
    Python简介和入门
    Python基础(一)
    Markdown 基础学习
    PyCharm 专业版安装
    Python基础(二)
  • 原文地址:https://www.cnblogs.com/Cao-Yucong/p/12187468.html
Copyright © 2011-2022 走看看