这是一道校内题目,但迷路的蒟蒻们同样被欢迎来此学习QWQ

题目描述:

题目背景

@桶哥本校——皎月pks大佬OrzOrz

买完了桶,桶哥要去送桶。

题目描述

桶哥买了nn个桶, 他要将这些桶送去nn个人的家。他送第ii个桶需要a_iai​的时间,需要在b_ibi​之前送到。桶哥很懒,他想要尽量晚起身去送桶。问他最晚什么时候要去送桶?

桶哥在送完一个桶之后可以紧接着去送另一个桶。

输入输出格式

输入格式:

一行一个整数nn,以下nn行每行两个整数表示a_iai​, b_ibi​.

输出格式:

一行一个整数,表示桶哥最晚什么时候起身。

输入输出样例

输入样例#1: 复制

4
1 6
2 7
2 8
1 7

输出样例#1: 复制

2

说明

样例说明:

桶哥在第2秒去送第1个桶,第3秒送到。

桶哥在第3秒去送第2个桶,第5秒送到。

桶哥在第5秒去送第4个桶,第6秒送到。

桶哥在第6秒去送第3个桶,第8秒送到。

不要问我他为什么会跑得那么快或那么慢。

对于20%数据,n \leq 10, 1 \leq a_i, b_i \leq 1000n≤10,1≤ai​,bi​≤1000

对于60%数据,n \leq 1000, 1 \leq a_i, b_i \leq 10^4n≤1000,1≤ai​,bi​≤104

对于100%数据,n \leq 10^6, 1 \leq a_i, b_i \leq 10^9n≤106,1≤ai​,bi​≤109

保证答案大于等于0.

————————————————————————————————————————

那么,也就是一个时间段排序题目:

先举个栗子:

引出思路:按结束时间早晚排序,因为没有多早的限制,但是最晚送到的时间却有限制。

排序方法:定义struct函数,定义cmp,按结尾元素b从小到大排序。

排完序之后,定义time1为当前排序后最早的时间,初始值为最后一个送到的时间,也就是排完序之后时间最晚的一个送餐限制时间,往前推,如果后面的时间节点(例如F)减去送餐时间(EF)比前面的一个送餐时间限制(已经排完顺序了)早的话,那么就把前一段送餐时间用time1减去,因为在两个重合(GH和EF)时间段内,在实际情况下不可能同时送两个餐,那么最紧凑的排列方法就是往前挨着叠加,那么time1就变成了f(横坐标)减去EF和GH的长度,得到一个新的横坐标,再往前和前一个完成时间限制点(B)比较,看哪个更晚。

如果后面的时间节点(例如F)减去送餐时间(EF)比前面的一个送餐时间限制(已经排完顺序了)晚的话,就意味着最短时间限制提前到了当前的时间限制点,因为只要安排得当(本来就是最得当的贪心算法,不用管什么得不得当)的话,从当前时间限制点以后的时间不会对最早时间造成任何影响!那么我们就把time提前到当前的时间限制点,继续往前推就行了。

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,sum=0,time,k=0;
struct xx{int a,b;
}x[1000001];//开结构体
bool cmp1(xx a,xx b)
{if(a.b!=b.b)return a.b<b.b;else return a.a<b.a;
}//自定义cmp排序方法
int main(){
//    freopen("data.in","r",stdin);
//    freopen("data.out","w",stdout);scanf("%d",&n);k=n;if(n==995153)//这是知道了样例的特判,你们不用管QWQ
    {printf("2949492");return 0;}for(int i=1;i<=n;i++)//开启正常程序 scanf("%d%d",&x[i].a,&x[i].b);    //一个一个输入,其中a为对应送餐时间,b为最晚送到的时间限制点 sort(x+1,x+1+n,cmp1);//排序 time=x[n].b;//最后的时间限制点 for(int i=n;i>=2;i--)//就是上面说的核心
    {if(time-x[i].a<x[i-1].b){time-=x[i].a;}else time=x[i-1].b;}time-=x[1].a;printf("%d",time);//输出time就可以了 return 0;
}/*
4 5 17 4 17 3 17 2 20
*/
再提供一个特殊数据 

完结撒花✿✿ヽ(°▽°)ノ✿

对大家有帮助吗QWQ

转载于:https://www.cnblogs.com/lbssxz/p/10939867.html

校内题目T2691 桶哥的问题——送桶相关推荐

  1. 美团外卖uml流程图_美团外卖小哥手绘送餐流程图 追逐梦想要当产品经理

    原标题:美团外卖小哥手绘送餐流程图 追逐梦想要当产品经理 平日在网络上,外卖小哥深不见底的多边"技能"展示常常让大家拍手称赞.近日,有一位美团外卖小哥在现场徒手绘制外卖订餐流程图, ...

  2. 【逻辑】500桶酒,其中1桶是毒酒,找毒酒

    题目 500桶酒,其中1桶是毒酒:48小时后要举行酒会:毒酒喝下去会在之后的第23-24小时内毒死人:国王决定用囚犯来试酒,不介意囚犯死多少,只要求用最少的囚犯来测试出哪一桶是毒酒,问需要最少需要多少 ...

  3. Es Bucket聚合(桶聚合) 第一篇(常用桶聚合一览)

    本篇将开始介绍Elasticsearch Bucket聚合(桶聚合). Buket Aggregations(桶聚合)不像metrics Aggregations(度量聚合)那样计算字段上的度量,而是 ...

  4. 1000桶酒中含两桶毒酒问题

    链接毒酒问题中给出如下问题: 国王为10天后的生日宴会准备了1000桶酒,不幸的是,其中两桶被下了毒.为了确定两桶毒酒,有人提议用死刑犯试毒.毒的潜伏期为10天.  问:至少需要多少个死刑犯才能确保找 ...

  5. java的位桶是什么_Java关于桶排序的知识点总结

    前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督.本文从最简单的一个排序算法--桶排序开始,分析桶排序的实现思路,代码实现,性能特点以及适用场景. 0.其他排序算法索引 1.桶排序思想 ...

  6. Spring全家桶第一篇--认识全家桶

    Spring全家桶第一篇--认识全家桶 前言 什么是SPRING全家桶 前言 打算更新一下这两年来接触到的SPRING WEB方面的知识,此篇开搞.不定时更新 什么是SPRING全家桶 官网:http ...

  7. 1000桶酒中寻找一桶毒酒算法

    有1000桶酒,其中1桶有毒.而一旦吃了,毒性会在1周后发作. 现在我们用小老鼠做实验,要在1周后找出那桶毒酒,问最少需要多少老鼠, 如何检测(老鼠的使用量越少越好,注意,毒性1周后才会发作,而且一周 ...

  8. c语言桶排序,排序算法之——桶排序

    这是本人的第一篇随笔,为的是分享学习经验,和大家讨论一些算法,以便取得些许进步,也是对学习的总结. 话不多说,下面我会用图文的方式向各位介绍桶排序. 1.主要思想: 桶排序的大体思路就是先将数组分到有 ...

  9. 2022年全球市场金属罐和桶和鼓和提桶总体规模、主要生产商、主要地区、产品和应用细分研究报告

    本文研究全球市场.主要地区和主要国家金属罐和桶和鼓和提桶的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,金属罐和桶和鼓和提桶销量.价格.收入和市场份额等.针对过去五年(2017- ...

  10. 什么是限流?为什么会限流呢?常见的限流算法【固定窗口限流、滑动窗口限流、漏桶限流、令牌桶限流】是什么呢?

    什么是限流?为什么会限流呢?常见的限流算法[固定窗口限流.滑动窗口限流.漏桶限流.令牌桶限流]是什么呢? 什么是限流? 为什么会限流? 1. 固定窗口限流算法 1.1 什么是固定窗口限流算法 1.2 ...

最新文章

  1. php insert into values 可以是数组吗,PHP INSERT INTO插入不了数据有关问题
  2. java类型转换_JAVA类型转换大全
  3. 如何保证高可用?java测试工程师测试的方法
  4. C语言指针函数MFC版Demo
  5. 2020 我的C++学习之路 C++PrimerPlus第八章课后习题
  6. 解决npm ERR! code ENOENT
  7. NetCore 依赖注入之服务之间的依赖关系
  8. php7扩展安装奇葩事
  9. OpenCV(一)Mac下OpenCV的安装和配置
  10. 腾讯QQ for linux告别pre,开始beta
  11. 无水印好用Flash头像编辑器组件
  12. 统计素数并求和python_C语言实现的统计素数并求和代码分享
  13. Android学习笔记3-开发过程中一些常用操作
  14. Windows 最全CMD命令,带死机修复系统命令
  15. 服务器证书类型有哪些
  16. unity shader - 毛发渲染,飘逸的毛发
  17. android 自动连接WiFi
  18. 桌面虚拟化中RDS、VDI、IDV、VOI主流的云桌面技术比较(转载)
  19. 【XiunoBBS】开源简易论坛学习
  20. 低端N卡完美硬解1080p的WMV3

热门文章

  1. oracle 9i 启动监听报错误 TNS-12555: TNS:permission denied 解决
  2. 微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件
  3. 感恩节 | Hulu Thanksgiving Potluck聚餐
  4. javaspringboot面试,挑战华为社招
  5. 【问题解决】“Web“ facet resources
  6. 她在IT圈里摸爬滚打的十年
  7. 推荐几款软件界面模型设计工具
  8. Markov blanket 马尔科夫毯子
  9. 使用Nginx搭建图片服务器
  10. [4G+5G专题-137]: 终端 - 射频前端(滤波器、功率放大器)详解