题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1620

题意:

  有n个工作,每一个工作完成需要花费的时间为tim[i],完成这项工作的截止日期为dead[i]。

  问你在保证所有工作按时完成的前提下,最晚什么时候开始工作。

  (每天从时刻0开始算。如果无论如何都完成不了,输出-1)

题解:

  贪心。

  先将所有工作按dead从大到小排序。

  当前开始工作的时间为start(初始为INF)。

  对于每个工作,start一定要满足两个条件:

    start <= dead - tim (最后一刻才完成这项工作的开始时间)

    start + tim <= 原来的start (这项工作做完了之后,才能开始别的工作)

  所以start = min(start - tim, dead - tim)

AC Code:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX_N 1005
#define INF 10000000 using namespace std; struct Work
{
int tim;
int dead;
Work(int _tim,int _dead)
{
tim=_tim;
dead=_dead;
}
Work(){}
friend bool operator < (const Work &a,const Work &b)
{
return a.dead>b.dead;
}
void read_work()
{
cin>>tim>>dead;
}
}; int n;
int start=INF;
Work work[MAX_N]; void read()
{
cin>>n;
for(int i=;i<n;i++)
{
work[i].read_work();
}
} void solve()
{
sort(work,work+n);
for(int i=;i<n;i++)
{
Work now=work[i];
start=min(start-now.tim,now.dead-now.tim);
}
} void print()
{
if(start>=) cout<<start<<endl;
else cout<<-<<endl;
} int main()
{
read();
solve();
print();
}

BZOJ 1620 [Usaco2008 Nov]Time Management 时间管理:贪心的更多相关文章

  1. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )

    二分一下答案就好了... --------------------------------------------------------------------------------------- ...

  2. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理

    Description Ever the maturing businessman, Farmer John realizes that he must manage his time effecti ...

  3. BZOJ——1620: [Usaco2008 Nov]Time Management 时间管理

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 920  Solved: 569[Submit][Status][Discuss] Description ...

  4. bzoj 1620: [Usaco2008 Nov]Time Management 时间管理【贪心】

    按s从大到小排序,逆推时间模拟工作 #include<iostream> #include<cstdio> #include<algorithm> using na ...

  5. 1620: [Usaco2008 Nov]Time Management 时间管理

    1620: [Usaco2008 Nov]Time Management 时间管理 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 506  Solved: ...

  6. 【BZOJ】1620: [Usaco2008 Nov]Time Management 时间管理(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1620 一开始想不通啊.. 其实很简单... 每个时间都有个完成时间,那么我们就从最大的 完成时间的开 ...

  7. bzoj1620 [Usaco2008 Nov]Time Management 时间管理

    Description Ever the maturing businessman, Farmer John realizes that he must manage his time effecti ...

  8. Bzoj 1229: [USACO2008 Nov]toy 玩具 题解 三分+贪心

    1229: [USACO2008 Nov]toy 玩具 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 338  Solved: 136[Submit] ...

  9. BZOJ 1229 [USACO2008 Nov]toy 玩具(三分+贪心)

    [题木链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1229 [题目大意] 每天对玩具都有一定的需求ni,每天可以花f价值每条购买玩具, 当天 ...

随机推荐

  1. MyBatis的一级缓存和二级缓存

    一级缓存 是SqlSession级别的缓存,当使用了clearCache方法和,或者close方法的话,这个缓存失效,如果还有同样的查询,则还会发送一次查询 SqlSession session = ...

  2. IntelliJ IDEA ,springboot 2.0 +mybatis 创建和访问数据库

    环境: JDK8+windows10 步骤 New Module —>Spring Initializr—>next 1 ​ 2. ​ 3.web勾选web,sql里面可以不勾,后续添加, ...

  3. IntelliJ IDEA出现Search for无法退出的问题

    说明: 1.这个不是安装了Vim导致的 解决方式: 1.可能是在不正确的系统时间启动的IDEA,然后启动完成后又把时间改成正确的. 2.直接方式是重启. 3.间接方式是修改完时间后再重启一下全部IDE ...

  4. PS 抠图如何使用通道法处理头发

      通道抠图法抠出美女飘逸头发-PS抠图实例教程 抠图更换背景后效果图 通道抠图法抠出美女飘逸头发-PS抠图实例教程 教程步骤: 1  打开原图,进入通道面板. 通道抠图法抠出美女飘逸头发-PS抠图实 ...

  5. 反射 type 的基本用法,动态加载插件

    这里介绍反射的简单实用 MyClass类 public class MyClass { public int Age { get; set; } public string Name { get; s ...

  6. 微信授权网页登陆,oauth

    1.在微信公众号请求用户网页授权之前.开发人员须要先到公众平台官网中的开发人员中心页配置授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头. 2.授 ...

  7. js 宽和高

    网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offs ...

  8. UVA 610 - Street Directions(割边)

    UVA 610 - Street Directions option=com_onlinejudge&Itemid=8&page=show_problem&category=5 ...

  9. 今日BBC

    1.随身英语 Brain training 怎样训练大脑? link 2.地道英语 In good nick 品质好.没有损坏(主要是指古老的东西,比方古董) link 3.今日新闻 -------- ...

  10. Django+uwsgi+nginx+angular.js项目部署

    这次部署的前后端分离的项目: 前端采用angular.js,后端采用Django(restframework),他俩之间主要以json数据作为交互 Django+uwsgi的配置可以参考我之前的博客: ...