首页 > 其他分享 >畜栏保留问题

畜栏保留问题

时间:2023-06-04 14:11:05浏览次数:30  
标签:NNN le 头牛 cow 保留 问题 畜栏 now

题目描述

农场有 NNN 头牛,每头牛会在一个特定的时间区间 [A,B][A, B][A,B] (包含 AAA 和 BBB ) 在畜栏里挤奶,且一个畜栏里同时只能有一头牛在挤奶。现在农场主希望知道最少几个畜栏能满足上述要求, 并要求给出每头牛被安排的方案。对于多种可行方案,输出一种即可。

输入

输入的第一行包含一个整数 NNN (1≤N≤500001 \le N \le 500001≤N≤50000), 表示有 NNN 牛头; 接下来 NNN 行每行包含两 个数,分别表示这头牛的挤奶时间 [Ai,Bi]\left[A_i, B_i \right][Ai​,Bi​] (1≤A≤B≤10000001 \le A \le B \le 10000001≤A≤B≤1000000) 。

输出

输出的第一行包含一个整数,表示最少需要的畜栏数:接下来 NNN 行,第 i+1i + 1i+1 行描述第 iii 头牛被分配的畜栏编号(从 111 开始)。

输入输出样例

样例输入 #1

5
1 10
2 4
3 6
5 8
4 7

样例输出 #1

4
1
2
3
2
4
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 struct node
 4 {
 5     int st,ed,num;
 6     bool operator<(const node&w)const{
 7         return st<w.st;
 8     }
 9 }cow[100010];
10 int n,res,tmp[1000010];
11 int main()
12 {
13     cin>>n;
14     for(int i=0;i<n;i++) cin>>cow[i].st>>cow[i].ed,cow[i].num=i+1;
15     sort(cow,cow+n);
16     set<pair<int,int>>que;//使用set去重
17     for(int i=0;i<n;i++)
18     {
19         que.insert({cow[i].ed,cow[i].num});
20         pair<int,int> now=*que.begin();//注意set用法,返回的是地址,所以要加*变成值
21         if(cow[i].st>now.first) {
22             que.erase(now);
23             tmp[cow[i].num]=tmp[now.second];
24         }
25         else tmp[cow[i].num]=++res;
26     }
27     cout<<que.size()<<endl;
28     for(int i=0;i<n;i++) cout<<tmp[i+1]<<endl;
29     return 0;
30 }

 

 

标签:NNN,le,头牛,cow,保留,问题,畜栏,now
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17455611.html

相关文章

  • 区间 mex 问题
    可以考虑以下P2709的做法。先用莫队取下出现在\([l_i,r_i]\)的位置的数,然后二分求得\(ask(x)=x\)的最大\(x\)就是答案。注意\(0\)不能加入树状数组,于是先给所有数加\(1\)。块长取\(n^{0.55}\)最佳。#include<bits/stdc++.h>usingnamespacestd;constintN=......
  • 虚谷数据库语法问题
    使用V11版本1、插入多条数据问题需要把插入数据的中间逗号去掉你图上的这个用法我们在v12的发行版上已经支持了,你那边报错是因为你现在使用的是v11吧INSERTINTOCLASS(CLASSID,CLASSNAME)VALUES(333,'666')(777,'888');2、连接字符串concat函数CONCAT(S1,s2)concat的参数......
  • 皇后问题2
    #include<iostream>usingnamespacestd;intarr[10][10];//用于存储棋盘以及之后的皇后摆放位置intans;//存储最后的答案booljudge(intx,inty)//用于判断这个地方能否放置皇后{inti,j;for(j=1;j<=......
  • Angular 应用解决跨域访问的问题
    在前后台分离的应用中,Angular与Java是一对好搭档。但是如果是分开部署应用,则势必会遇到跨域访问的问题。什么是跨域启动应用之后,有些浏览器会提示如下告警信息:No'Access-Control-Allow-Origin'headerispresentontherequestedresource.Origin'http://localhost:4200'i......
  • “AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”
    导入AS3项目时提示“AIRSDK0.0:AIRSDKlocation“D:\ProgramFiles\Adob5eFlashBuilder4.7\eclipse\plugins\com.adobe.flexbuilder.flex_4.7.0.349722\devsdks\AIRSDK\Win”doesnotexist.”是AS3项目找不见AIRSDK.打开项目配置ActionScriptBuildPath,路径出错......
  • linux 性能自我学习 ———— cpu 快速定位问题 [六]
    前言主要介绍一下cpu如何快速定位问题。正文cpu的一些性能指标:1.cpu使用率cpu使用率描述了非空闲时间占总cpu时间的百分比,根据cpu上运行任务的不同,又被分为用户cpu、系统cpu、i/o等待cpu、软中断、硬中断。用户cpu使用率,包括用户态cpu使用率,和低优先级用户态cpu使用......
  • [刷题笔记] ybt1255:迷宫问题
    题目传送门Solution数据范围很小,一共才\(5\times5\),所以乱搞做法很多比如我一开始就先bfs单纯跑最短路,然后dfs找路径但是忘回溯被嘲讽其实可以边bfs边记录路径,因为bfs是按层数搜的,所以第一次到达终点的路径一定是最优的。那么如何记录路径呢?我原来用pair,经教练指导发现可以......
  • 解决谷歌验证码问题
    浏览器右键F12,打开控制台,输入以下代码: !(function(){"usestrict";document.querySelectorAll("script").forEach(function(e){if(e.src.indexOf("googleapis.com")>=0||e.src.indexOf("themes.googleuserconten......
  • 强化学习:连续控制问题中Actor-Critic算法的linear baseline
    最近在看连续控制问题,看到了一个Actor-Critic算法中手动扩展features和设置linearbaseline的方法,这些方法源自论文:《BenchmarkingDeepReinforcementLearningforContinuousControl》。  对于低维的features我们可以手动扩展:  代码实现:returntorch.cat([observations,ob......
  • 【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client
    问题描述在AzureKubernetes服务中,创建一个InternalLoadBalancer服务,使用以下yaml内容:internallb.yamlapiVersion:v1kind:Servicemetadata:name:ilb-myappannotations:service.beta.kubernetes.io/azure-load-balancer-internal:"true"spec:type:LoadBala......