hiho 第155周 任务分配
最小路径覆盖会超时;
贪心思路:
按照开始时间排序,然后根据结束时间,维护一个以结束时间的单调递增的队列,每次与最快结束的任务进行比较即可;
/*
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <vector>
#include <cstring> using namespace std; const int maxn = 100000+5; struct BPM {
int n,m;
vector<int> G[maxn];
int left[maxn];
bool T[maxn]; int right[maxn];
bool S[maxn]; void init(int n,int m) {
this->n = n;
this->m = m;
for(int i=0;i<n;i++)
G[i].clear();
} void AddEdge(int u,int v) {
G[u].push_back(v);
} bool match(int u) {
S[u] = true;
for(int i=0;i<G[u].size();i++) {
int v = G[u][i];
if(!T[v]) {
T[v] = true;
if(left[v]==-1||match(left[v])) {
left[v] = u;
right[u] = v;
return true;
}
}
}
return false;
} int solve() {
memset(left,-1,sizeof(left));
memset(right,-1,sizeof(right));
int ans = 0;
for(int u=0;u<n;u++) {
memset(S,0,sizeof(S));
memset(T,0,sizeof(T));
if(match(u))
ans++;
}
return ans;
} }sol; struct Node {
int s,e;
}node[maxn]; int main()
{
int n;
scanf("%d",&n);
sol.init(n,n);
for(int i=0;i<n;i++)
scanf("%d%d",&node[i].s,&node[i].e); for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(node[i].e<=node[j].s)
sol.AddEdge(i,j);
else if(node[i].s>=node[j].e)
sol.AddEdge(j,i); printf("%d\n",n-sol.solve()); return 0;
}
*/ #include <bits/stdc++.h> using namespace std; const int maxn = +; struct Node {
int s,e;
bool operator < (const Node & rhs) const {
return s < rhs.s;
}
}node[maxn]; int main()
{
int n;
scanf("%d",&n);
for(int i=;i<n;i++)
scanf("%d%d",&node[i].s,&node[i].e); sort(node,node+n); priority_queue<int,vector<int>,greater<int> > Q; Q.push(node[].e);
for(int i=;i<n;i++) {
if(Q.top()<=node[i].s)
{
Q.pop();
Q.push(node[i].e);
}
else Q.push(node[i].e);
}
printf("%d\n",Q.size()); return ;
}
hiho 第155周 任务分配的更多相关文章
- hiho一下21周 线段树的区间修改 离散化
离散化 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~ 这天小Hi和小Ho ...
- hiho 第116周,最大流最小割定理,求最小割集S,T
小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么? 小Ho:我记得!网络流就是给定了一张图G=(V,E),以及源点s和汇点t.每一条边e(u,v)具有容量c ...
- hiho一下116周 网络流
网络流二·最大流最小割定理 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi:在上一周的Hiho一下中我们初步讲解了网络流的概念以及常规解法,小Ho你还记得内容么? ...
- hiho 第119周 最大权闭合子图
描述 周末,小Hi和小Ho所在的班级决定举行一些班级建设活动. 根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值. 班级一共有M名学生(编 ...
- hiho 第六周 01背包
简单的01背包,没有报名,这周的没有权限提交 #include<iostream> #include<memory.h> using namespace std; #defin ...
- hiho一下 第一周 最长回文子串
时间限制:1000ms 单点时限:1000ms 内存限制:64MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这 ...
- hiho一下20周 线段树的区间修改
线段树的区间修改 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 对于小Ho表现出的对线段树的理解,小Hi表示挺满意的,但是满意就够了么?于是小Hi将问题改了改,又出给了 ...
- hiho一下18周 RMQ问题再临
RMQ问题再临 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 终于,小Hi和小Ho踏上了回国的旅程.在飞机上,望着采购来的特产--小Hi陷入了沉思:还记得在上上周他们去 ...
- hiho一下123周 后缀数组四·重复旋律
后缀数组四·重复旋律4 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成的数列.小Hi ...
随机推荐
- TT 安装 之 LINUX
# useradd ttadmin -- 创建用户 # groupadd ttadmin -- 创建用户组 # mkdir /etc/TimesTen -- 创建目录 # chgrp -R ttadm ...
- Echart 动态生成series数据
要做成页面只传入数据,js生成图表,如下图 下面是js代码 var LineChart = function (ID, title, axisData,seriesData) { var myChar ...
- RabbitMQ原理——exchange、route、queue的关系
从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...
- 初探angular
前言 angular4.0目前已经发布了,angular是mvw框架,所以对其有一个简单的了解还是很有必要的. 目前angular有中文官网,且文档介绍也都是4.x的,但是为了了解其发展过程,我们先了 ...
- 【CAD】创建多行文本
下面为OBJECT-ARX创建多行文本的代码,记录 McDbMText* Mx::AddMText(IN McDbBlockTableRecord* pBlkRec, IN LPCTSTR pszCo ...
- TOJ 3486 Divisibility
Description On the planet Zoop, numbers are represented in base 62, using the digits 0, 1, . . . , 9 ...
- unity向量计算
参考:https://www.cnblogs.com/wywnet/p/4790665.html 上面的文章讲的很重要 下面是我自己实现的一个例子 一直一个向量,一个夹角,求另一个向量 按P键改变夹角 ...
- 用PHP实现同一个帐号不允许同时登陆,只允许一个帐号登录?
数据库表 user_login_info 字段:id,user_ip,user_id,last_access_time user_id 做唯一性索引 1. 用户登录后 如果没有当前用户的数据,插入一条 ...
- Ansible 介绍和使用
简介 Ansible是一个简单的自动化运维管理工具,基于Python语言实现,由Paramiko和PyYAML两个关键模块构建,可用于自动化部署应用.配置.编排task(持续交付.无宕机更新等).主版 ...
- JavaScript对象 创建对象(一)
创建对象 --以下内容来自JavaScript高级程序设计 工厂模式 用函数来封装以特定接口创建对象的细节. function createPerson(name, age, job){ var o ...