首先把所有的牛排个序,优先按照起始时间

其次建立一个堆,重载小于号(只可以重载小于号),优先按照右端点的时间排序,大的放下面(sort的时候会放后面),堆顶是结束时间最快的

#include <iostream>
#include <algorithm>
#include <queue> using namespace std;
const int N = 5e4 + 10;
struct node {
int l, r, id;
bool operator < (const node &t) const {
if(r != t.r) return r > t.r;
return l > t.l;
}
}a[N]; bool cmp(node a, node b) {
if(a.l != b.l) return a.l < b.l;
return a.r < b.r;
} int n;
int ans[N]; int main() {
while(cin >> n) {
for(int i = 0; i < n; i ++ ) {
int l, r; cin >> l >> r;
a[i].l = l;
a[i].r = r;
a[i].id = i;
}
sort(a, a + n, cmp);
priority_queue<node> q;
ans[a[0].id] = 1;
q.push(a[0]);
int idx = 1;
for(int i = 1; i < n; i ++ ) {
if(!q.empty() && q.top().r < a[i].l) {
ans[a[i].id] = ans[q.top().id];
q.pop();
} else {
idx ++;
ans[a[i].id] = idx;
}
q.push(a[i]);
}
cout << idx << endl;
for(int i = 0; i < n; i ++ )
cout << ans[i] << endl;
} return 0;
}

poj_3190的更多相关文章

随机推荐

  1. Arm64架构下静态编译Nginx

    这段时间,我一直忙于将 Rainbond 源码构建模块移植到 Arm64/aarch64 架构中.这一源码构建模块可以将指定代码仓库中包含的源码,拉取构建成为容器镜像,在各种容器平台中运行.目前支持的 ...

  2. React MobX 开始

    MobX 用于状态管理,简单高效.本文将于 React 上介绍如何开始,包括了: 了解 MobX 概念 从零准备 React 应用 MobX React.FC 写法 MobX React.Compon ...

  3. java 语言基础作业

    1.动手动脑 仔细阅读示例: EnumTest.java,运行它,分析运行结果? 程序运行结果: 实验结论:枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象.相同的值则引 ...

  4. Linux组

    Linux组 介绍 Linux中,没有用户和文件可以脱离组而存在 用户有"组"这一属性:相关链接 文件有"所有者""组""其他组& ...

  5. 使用PyTorch构建神经网络模型进行手写识别

    使用PyTorch构建神经网络模型进行手写识别 PyTorch是一种基于Torch库的开源机器学习库,应用于计算机视觉和自然语言处理等应用,本章内容将从安装以及通过Torch构建基础的神经网络,计算梯 ...

  6. Spring企业级程序设计 • 【目录】

    章节 内容 实践练习 Spring企业级程序设计目录(作业笔记) 第1章 Spring企业级程序设计 • [第1章 Spring之旅] 第2章 Spring企业级程序设计 • [第2章 Spring ...

  7. Spring第一个程序

    目录 1.利用Maven导入jar包 2.编写一个实体类 3.编写Spring文件 4.测试 1.利用Maven导入jar包 <dependency> <groupId>org ...

  8. BUG—Nuget包版本不一致导致程序行为与预期不符

    注:本文收录于<Bug集锦>,请点击此处查看全文目录 BUG起因 先介绍一下背景: 数周前的一个极其平常的下午,完成了本次迭代的开发工作,发布到QA提测,然后开始摸鱼.没几分钟,测试就来找 ...

  9. CGO快速入门

    1. 通过`improt "C"`语句开启CGO特性2. `/**/`中间是C代码,之后接 import "C" 如果存在空行 就会报错.could not d ...

  10. postgreSQL更改表的数据类型

    更改表的sql语句 ALTER table employees ALTER COLUMN status TYPE boolean USING status::boolean; 报下列错误 因为字段上设 ...