hdu 6180 Schedule
Schedule
Print the minimum number K of the machines for performing all schedules, and when only uses K machines, print the minimum sum of all working times.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node
{
int st;//记录入点和出点
int flag;//如果是入点就+1,否则就-1
}s[*+]; int L[+],R[+];//记录机器的开始时间 和 结束时间 bool cmp(node a,node b)
{
if(a.st != b.st)
return a.st<b.st;//就是按照端点排序
else
return a.flag < b.flag;//因为区间结束的时候 和另一个区间开始的会重叠
//so 让区间先结束 然后在开始 这样子的吧
} void init()
{
memset(L,,sizeof(L));
memset(R,,sizeof(R));
}
int main ()
{
int t;
scanf("%d",&t);
while (t--)
{
init();
int n;
scanf("%d",&n);
int m=;
for(int i=;i<n;i++)
{
int st,e;
scanf("%d %d",&st,&e);
s[m].st = st,s[m++].flag=;//左端点+1
s[m].st = e,s[m++].flag=-;//右端点-1
}
sort(s,s+m,cmp);
int sum=,ans=;
for(int i=;i<m;i++)
{
sum+=s[i].flag;
if(sum>ans)
{
ans = sum;
L[sum] = s[i].st;
}
}
sum=,ans=;
for(int i=m-;i>=;i--)
{
sum-=s[i].flag;
if(sum>ans)
{
ans = sum;
R[sum] = s[i].st;
}
}
ll res=;
for(int i=;i<=ans;i++)
{
res += (R[i]-L[i]);
}//因为最后就是R-L 所以这里不用管 R[i]和L[i]是否对应
cout<<ans<<" "<<res<<endl;
}
}
#include<bits/stdc++.h>
using namespace std;
struct node{
int l,r;
bool operator <(const node a)const{
return l<a.l;
}
}seg[];
multiset<int>s;
multiset<int>::iterator it;
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
s.clear();
int n;
scanf("%d",&n);
for(int i=;i<n;i++)
{
scanf("%d %d",&seg[i].l,&seg[i].r);
}
int ans = ;//记录所用机器数量
long long res = ;//记录时间
sort(seg,seg+n);
for(int i=;i<n;i++)
{
it = s.upper_bound(seg[i].l);//寻找 >= seg[i].l 的r
if(it == s.begin())
{
ans++; //找不到 就重新开一个机器
res += seg[i].r - seg[i].l;
s.insert(seg[i].r);
continue;
}
it--;//这里就是离该i区间的起始点最近的 结束点
res += seg[i].r - *it;//把该i区间的结束点 接上上个结束点 这样就不用管 起始点在哪里了
s.erase(it);//把当前区间结束点删除
s.insert(seg[i].r);//重新更新
}
cout<<ans<<" "<<res<<endl;
}
}
hdu 6180 Schedule的更多相关文章
- 2017多校第10场 HDU 6180 Schedule 贪心,multiset
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6180 题意:给了一些任务的开始时间和终止时间,现在让我们安排k台及机器,让这些任务在k太机器上最小,并 ...
- HDU - 6180:Schedule(简单贪心)
There are N schedules, the i-th schedule has start time s i si and end time e i ei (1 <= i < ...
- Schedule HDU - 6180 (multiset , 贪心)
There are N schedules, the i-th schedule has start time si and end time ei (1 <= i <= N). Ther ...
- hdu 1534 Schedule Problem (差分约束)
Schedule Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 6180贪心
题意:有m个工程,一台机器在同一时间只能运行一个工程,告诉你每个工程的起始时间和结束时间,求出最少要多少个机器以及最小的机器总运行时间(机器开始了就不能停了,直到用完该台机器才停止). 题解:由于这里 ...
- HDU 3572 Task Schedule(拆点+最大流dinic)
Task Schedule Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- hdu 1150 Machine Schedule 最少点覆盖转化为最大匹配
Machine Schedule Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...
- hdu 3572 Task Schedule 网络流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3572 Our geometry princess XMM has stoped her study i ...
- hdu 1150 Machine Schedule 最少点覆盖
Machine Schedule Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...
随机推荐
- javaScript高级教程(五) Event Flow
1.两个阶段三个模型:Netscape支持事件捕获,IE支持事件冒泡,w3c是先捕获后冒泡 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 S ...
- python 使用set对列表去重,并保持列表原来顺序
# python 使用set对列表去重,并保持列表原来顺序 list1 = ['cc', 'bbbb', 'afa', 'sss', 'bbbb', 'cc', 'shafa'] for item i ...
- Shell的>/dev/null、2>&1、2>1
转载自:http://dos2unix.cn/link/480 1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null ...
- [py]access日志入mysql-通过flask前端展示
目录 pymysql组装sql入库日志 代码组织 将入库的日志通过flask前端展示 pymysql组装sql入库日志 pymysql模块的用法 采集这些指标(metirc)都是linux环境,会用到 ...
- [svc]ftp协议数据连接的2种模式
玩明白了以太网2的二层数据格式, ip格式 tcp/udp个时候, 需要玩一玩一些有用的基于这些已上的协议数据了. 如 dhcp ftp等.比较有趣. ftp协议 分控制连接21端口 和数据连接 20 ...
- spring boot 自定义过滤器链
spring boot 会按照order值的大小,从大到小的顺序来依次过滤. 贴下代码: package com.osp.ucenter; import org.springframework.boo ...
- PAT Battle Over Cities [未作]
1013 Battle Over Cities (25)(25 分) It is vitally important to have all the cities connected by highw ...
- redis的5种数据结构的使用场景介绍
一.redis 数据结构使用场景 原来看过 redisbook 这本书,对 redis 的基本功能都已经熟悉了,从上周开始看 redis 的源码.目前目标是吃透 redis 的数据结构.我们都知道,在 ...
- php截取制定长度字符串
/** +---------------------------------------------------------- * 字符串截取,支持中文和其他编码 +----------------- ...
- .apk等常用文件下载出现如果应下载文件,请添加 iis MIME 映射。
在下载.apk文件时出现错误. HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. ...