洛谷 T2691 桶哥的问题——送桶
嗯...
题目链接:https://www.luogu.org/problem/T2691
这道题有一点贪心的思想吧...并且思路与题目是倒着来的(貌似这种思路已经很常见的...
先举个栗子:
引出思路:按结束时间早晚排序,因为没有多早的限制,但是最晚送到的时间却有限制。把时间倒流,把时间轴倒着看,首先t初始化为max(b[i]),然后枚举一遍,如果当前t大于b[i],那在t的时候不可能到达,所以要把t改为b[i]。并且t要减去消耗时间a[i]。
初始值为最后一个送到的时间,往前推,如果前面的一个送餐时间限制比后面的时间节点(例如F)减去送餐时间(EF)晚的话,那么就把前一段送餐时间用减去,因为在两个重合(GH和EF)时间段内,在实际情况下不可能同时送两个餐,那么最紧凑的排列方法就是往前挨着叠加,那么t就变成了F(横坐标)减去EF和GH的长度,得到一个新的横坐标,再往前和前一个完成时间限制点(B)比较,看哪个更晚。
如果后面的时间节点(例如F)减去送餐时间(EF)比前面的一个送餐时间限制晚的话,就意味着最短时间限制提前到了当前的时间限制点,因为只要安排得当的话,从当前时间限制点以后的时间不会对最早时间造成任何影响!那么我们就把t提前到当前的时间限制点,继续往前推就行了。
AC代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
//时间倒流
using namespace std; const int maxn = 1e6 + ; int n;
struct node{
int a, b;
} e[maxn]; inline bool cmp(node x, node y){
return x.b > y.b;
} int main(){
scanf("%d", &n);
for(int i = ; i <= n; i++)
scanf("%d%d", &e[i].a, &e[i].b);
sort(e + , e + + n, cmp);
int t = e[].b;
for(int i = ; i <= n; i++){
if(t > e[i].b) t = e[i].b;
t -= e[i].a;
}
printf("%d\n", t);
return ;
}
AC代码
洛谷 T2691 桶哥的问题——送桶的更多相关文章
- 校内题目T2691 桶哥的问题——送桶
这是一道校内题目,但迷路的蒟蒻们同样被欢迎来此学习QWQ 题目描述: 题目背景 @桶哥本校——皎月pks大佬OrzOrz 买完了桶,桶哥要去送桶. 题目描述 桶哥买了nn个桶, 他要将这些桶送去nn个 ...
- T2691 桶哥的问题——送桶
这个题其实不难,就是按照结束时候的顺序从大到小走一遍,能送的就送,如果区间不重合就更新一下 代码: #include<iostream> #include<cstdio> #i ...
- T2695 桶哥的问题——送桶 题解
校内测试 ------T2 看完这个题,就觉得和贪心那一块的任务调度很像,于是思路就是贪心啦! 蒟蒻的我,也就只能想到用贪心了,但是不知道怎么用qwq 这是我考试当时的思路,数据水骗了80分qwq: ...
- T2695 桶哥的问题——吃桶
~~~~~我~是~真的~忍不了~这个~取模~的~锅~了~~~~~ T2695 桶哥的问题——吃桶 前传 1.T2686 桶哥的问题——买桶 这题真的hin简单,真的 2.T2691 桶哥的问题——送桶 ...
- 【桶哥的问题——吃桶-简化版】【洛谷p2671】求和
求和=>[链接] 题目相较起_rqy出的要简单很多,来自noip普及组2015 化简这个式子:x+z=2y,故x与z mod 2同余,因此和桶哥的问题——吃桶一样的思路就可以做出来啦qwq: # ...
- 【洛谷T2695 桶哥的问题——吃桶】
这是我们团队的一个题目(就是一个_rqy说很好写的题QwQ) 题目背景 @桶哥 这个题目的思路很玄学(性感_rqy在线讲解) 60 Pts 对于前面的六十分,好像很好拿,单纯的打一个模拟 唯一需要注意 ...
- 校内题目T2695 桶哥的问题——吃桶
同T2一样外校蒟蒻可能没看过: 题目描述: 题目背景 @桶哥 桶哥的桶没有送完. 题目描述 桶哥的桶没有送完,他还有n个桶.他决定把这些桶吃掉.他的每一个桶两个属性:种类aia_iai和美味值bib ...
- 洛谷 P2380 狗哥采矿
题目背景 又是一节平静的语文课 狗哥闲来无事,出来了这么一道题 题目描述 一个n*m的矩阵中,每个格子内有两种矿yeyenum和bloggium,并且知道它们在每个格子内的数量是多少.最北边有blog ...
- 洛谷 P2383 狗哥玩木棒
题目背景 狗哥又趁着语文课干些无聊的事了... 题目描述 现给出一些木棒长度,那么狗哥能否用给出的木棒(木棒全用完)组成一个正方形呢? 输入输出格式 输入格式: 输入文件中的第一行是一个整数n表示测试 ...
随机推荐
- PyQt5遇到的一个坑 "ImportError: unable to find Qt5Core.dll on PATH" 及解决办法
最近再实现一个功能,主要是将自动化测试界面化 环境组合为:Windows 64bit + PyCharm + Python + PyQt5 + Pyinstaller + Inno Setup PS ...
- javascript当中局部变量和全局变量
2)局部变量和全局变量 马克-to-win:浏览器里面 window 就是 global,通常可以省.nodejs 里没有 window,但是有个叫 global 的.例 3.2.1<html& ...
- .NetCore中使用HttpHeader
httpContextAccessor.HttpContext.Request.Headers[key]; 可以获取一个StringValues,需要注意调试中显示的Headers的key,并不是实际 ...
- PHP导出身份证号科学计数法
最近在做PHP的数据导入和导出,到处身份证号的时候,直接变成了科学计算法,找了一个很简单的方法就是这样 $obj= " ".$v['idcard']; 但是这样有空格啊,网上搜了一 ...
- go key-value缓存go-cache实现
Cache类型 Cache封装了一个cache类型,cache类型的参数解析: 1.defaultExpiration time.Duration 每个键值的默认过期时间. 2.items map[s ...
- linux安装、使用优化、常用软件
定制自己的ubuntu桌面系统 一.安装ubuntu 1.下载ubuntu镜像Iso文件 ubuntu官网下载:https://cn.ubuntu.com/download 2.u盘写入 (1)下载U ...
- iOS 组件化开发之使用CocoaPod制作自己的远程私有库
随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分.但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好 ...
- P&R 5
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? 芯片的整体架构模块划分 ...
- 混淆-SmartAssembly
SmartAssembly 7 documentation:https://documentation.red-gate.com/sa SmartAssembly7.2版本下载链接: https:// ...
- linux使用wget下载https开头url的文件
可以使用命令 : 比如我们可以修改成: wget --no-check-certificate https://我们下载文件路径 来自: http://www.laozuo.org/3648.html