【贪心+堆】XMU 1584 小明的烦恼
题目链接:
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1584
题目大意:
给n(n<=100 000)个任务的耗时和截至时间,问最少不能完成几个任务。
题目思路:
【贪心+堆】
一开始想贪心但是没想到要加个堆,又跪了。
首先按照结束时间排序,结束时间早的肯定优先考虑。
如果当前的任务无法完成,就将当前任务和之前已经做了的任务中耗时最长的取消掉,改做当前任务
(如果当前任务就是耗时最长的则不用加当前任务,因为取消一个换另一个结果不会更差,只会使已经消耗的时间减少)
所以用一个最大堆记录当前的最大耗时。
//
//by coolxxx
//
#include<iostream>
#include<algorithm>
#include<string>
#include<iomanip>
#include<memory.h>
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<math.h>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))
#define eps 1e-8
#define J 10
#define MAX 0x7f7f7f7f
#define PI 3.1415926535897
#define N 100004
using namespace std;
int n,m,lll,ans,cas;
struct xxx
{
int c,e;
}a[N];
int h[N];
void weihuup(int h[],int x)
{
int xx=x>>;
if(!xx)return;
if(h[x]>h[xx])
{
swap(h[x],h[xx]);
weihuup(h,xx);
}
}
void weihudown(int h[],int x)
{
int xx=x+x,yy=x+x+,zz;
if(xx>h[])return;
if(yy<=h[])
{
zz=h[xx]>h[yy]?xx:yy;
if(h[x]<h[zz])
{
swap(h[x],h[zz]);
weihudown(h,zz);
}
}
else
{
if(h[x]<h[xx])
swap(h[x],h[xx]);
}
}
bool cmp(xxx aa,xxx bb)
{
if(aa.e!=bb.e)return aa.e<bb.e;
return aa.c<bb.c;
}
int main()
{
#ifndef ONLINE_JUDGE
// freopen("1.txt","r",stdin);
// freopen("2.txt","w",stdout);
#endif
int i,j,k;
// while(~scanf("%s",s1))
while(~scanf("%d",&n))
{
for(i=;i<=n;i++)
{
scanf("%d%d",&a[i].c,&a[i].e);
}
sort(a+,a++n,cmp);
for(i=,k=;i<=n;i++)
{
if(k+a[i].c<=a[i].e)
{
h[++h[]]=a[i].c;
weihuup(h,h[]);
k+=a[i].c;
}
else
{
if(a[i].c>h[])continue;
k=k-h[]+a[i].c;
h[]=a[i].c;
weihudown(h,);
}
}
printf("%d\n",n-h[]);
}
return ;
} /*
// //
*/
【贪心+堆】XMU 1584 小明的烦恼的更多相关文章
- hunnu 小明的烦恼——找字符串
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 小明的烦恼——找字符串 ...
- hunnu 11545小明的烦恼——找路径 (最大流)
小明的烦恼--找路径 Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: ...
- hunnu11543:小明的烦恼——分糖果
Problem description 小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...
- hunnu11544:小明的烦恼——找字符串
Problem description 小明是个非常优秀的同学.他除了特别公正外,他也非常细心,当然老师肯定也知道,这不,老师又有事情找他帮忙了.老师每周都会给他一个字符串A.然后问小明" ...
- hnuun 11544 小明的烦恼——找字符串(求环形字符串的最小最大字典序)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0 最小最大表示法: 求环 ...
- hunnu - 11545 小明的烦恼——找路径 (最大流)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11545 只是要求不经过相同的边,那么每次找出一条增广路T-- ...
- 小明历险记:规则引擎drools教程一
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...
- hunnu--11545--小明的烦恼——找路径
小明的烦恼--找路径 Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:32768KB Total submit users: ...
- ACM 懒省事的小明
懒省事的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...
随机推荐
- htaccess 正则规则整理(转)
为了方便 htaccess 编写正则,这里整理了一下 htaccess 的正则规则. # —— 位于行首时表示注释. [F] —— Forbidden(禁止): 命令服务器返回 403 Forbidd ...
- [转] HBase的特征和优点
from: http://blog.jobbole.com/83614/ 概念:行键,列簇 Hbase 是运行在Hadoop上的NoSQL数据库,它是一个分布式的和可扩展的大数据仓库,也就是说HBas ...
- 转 - CSS深入理解vertical-align和line-height的基友关系
一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦 ...
- (转)Div左右两侧等高
一. 利用背景图,做出左右等高的模拟效果 这种方法不是真正的左右等高,而是在外框元素中添加一张背景图片,当内容增多时,背景会纵向重复,就会形成左右等高的效果. 这种方法不是真正的div自动等高,而 ...
- 13、SQL Server 自定义函数
SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值 ...
- JS加入收藏与设置主页
收藏: <a href="javascript:void(0)" onclick="shoucang(document.title,window.location) ...
- Android虚拟机GenyMotion-- 遇到的问题
问题: android studio 检测不到 genymotion 原因:没有设置genymotion的adb,也就是sdk的路径. 解决方法:打开genymotion的主页面,设置sdk的位置为你 ...
- jquery动画总结
基本动画 show() //直接显示元素,没有动画 show(speed, [callback]) //有动画,有回调函数 hide() //直接隐藏元素,没有动画 hide(speed, [call ...
- 016_openxml_forxml
016_openxml_forxml --openxml*********************************************************************** ...
- 人民币符号¥在css和html正确显示
商城项目需要涉及到人民币的页面现实问题.但是¥(指的是通常输入法中文全角模式下按shift+4的那个)在宋体(v3.03, v5.0)的情况下是显示一杠.常见的其他字体微软雅黑(Microsoft Y ...