• PAT 2021 春季 甲级 7-2 Lab Access Scheduling


    先按照开始时间排序,再按照结束时间排序
    如果i+1的开始时间超过了i的结束时间,跳过
    记录结束时间超过23:59:59的个数,大于2时终止处理

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <cstring>
    using namespace std;
    int n,sh,sm,ss,eh,em,es;
    struct Node {
    	int s;
    	int e;
    	Node() {
    		s=0;
    		e=0;
    	}
    	Node(int _s,int _e):s(_s),e(_e) {
    
    	}
    };
    vector<Node> nds;
    bool cmp(Node &nd1,Node &nd2) {
    	return nd1.s<nd2.s;
    }
    bool cmp2(Node &nd1,Node &nd2) {
    	return nd1.e<nd2.e;
    }
    int main() {
    	scanf("%d",&n);
    	int mins=0,maxe=(23*60+59)*60+59;
    	for(int i=0; i<n; i++) {
    		scanf("%d:%d:%d %d:%d:%d",&sh,&sm,&ss,&eh,&em,&es);
    		int s = (sh*60+sm)*60+ss;
    		int e = (eh*60+em)*60+es;
    		if(s>maxe)continue;
    		Node nd(s,e);
    		nds.push_back(nd);
    	}
    	sort(nds.begin(),nds.end(),cmp);
    	sort(nds.begin(),nds.end(),cmp2);
    	int ans=1,cnt=0,pre=nds[0].e;
    	if(nds[0].e>maxe)cnt++;
    	for(int i=1; i<nds.size(); i++) {
    		if(nds[i].s<pre)continue;
    		if(cnt>2)break;
    		ans++;
    		pre=nds[i].e;
    		if(nds[i].e>maxe)cnt++;
    	}
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    手动安装mysql-5.0.45.tar.gz
    Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程
    大数据分析之技术框架整理
    docker安装
    CentOS 6.8安装Docker V1.0
    处理百万级的数据
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 31. 栈的压入、弹出序列
  • 原文地址:https://www.cnblogs.com/houzm/p/14529681.html
Copyright © 2020-2023  润新知