zoukankan      html  css  js  c++  java
  • [USACO06FEB]摊位预订Stall Reservations

    洛咕

    POJ

    题意:约翰的(N(1<N<50000))头奶牛实在是太难伺候了,她们甚至有自己独特的产奶时段.当然对于某一头奶牛,她每天的产奶时段是固定的,为时间段A到B包括时间段A和时间段B.显然,约翰必须开发一个调控系统来决定每头奶牛应该被安排到哪个牛棚去挤奶,因为奶牛们显然不希望在挤奶时被其它奶牛看见.约翰希望你帮他计算一下:如果要满足奶牛们的要求,并且每天每头奶牛都要被挤过奶,至少需要多少牛棚?每头牛应该在哪个牛棚被挤奶.如果有多种答案,你只需任意一种即可.

    分析:按照吃草时间从小到大排序,用一个小根堆维护每个畜栏最后一头牛结束吃草时间,把结束时间最早的牛安排在堆顶,对于新来的一头牛如果它的开始时间比堆顶晚就不用新开牛棚,否则就要新开一个牛棚.

    //#include<bits/stdc++.h>
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<map>
    using namespace std;
    inline int read(){
        int x=0,o=1;char ch=getchar();
        while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
        if(ch=='-')o=-1,ch=getchar();
        while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
        return x*o;
    }
    const int N=50005;
    struct node{
    	int l,r,id,num;
    	bool operator < (const node x) const{
    		return r>x.r;
    	}
    }a[N];
    priority_queue<node>q;
    inline bool cmp(const node &x,const node &y){return x.l<y.l;}
    int ans[N];
    int main(){
    	int n=read();
    	for(int i=1;i<=n;++i){
    		a[i].l=read();
    		a[i].r=read();
    		a[i].id=i;
    	}
    	sort(a+1,a+n+1,cmp);
    	int sum=1;node temp;
    	temp.r=a[1].r;temp.num=1;q.push(temp);
    	ans[a[1].id]=1;
    	for(int i=2;i<=n;++i){
    		temp=q.top();
    		if(temp.r<a[i].l){
    			q.pop();ans[a[i].id]=temp.num;
    			node res;res.r=a[i].r;res.num=temp.num;q.push(res);
    		}
    		else{
    			++sum;ans[a[i].id]=sum;
    			node cnt;cnt.r=a[i].r;cnt.num=sum;q.push(cnt);
    		}
    	}
    	printf("%d
    ",sum);
    	for(int i=1;i<=n;++i){
    		printf("%d
    ",ans[i]);
    	}
        return 0;
    }
    
    
  • 相关阅读:
    Win8系统 Python安装
    一些安卓开源框架整理
    Android 媒体键监听以及模拟媒体键盘的实现 demo
    android View 自动 GONE 问题
    Android 定时器TimerTask 简单使用
    关于Android studio 相对 eclipse 优点
    Java序列化与反序列化
    android shape的使用 边框
    Android Studio 修改 包名 package name
    Android WebView Long Press长按保存图片到手机
  • 原文地址:https://www.cnblogs.com/PPXppx/p/11233852.html
Copyright © 2011-2022 走看看