【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
Date:2022.02.21
题意:
奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。
她以每秒 1 米的速度出发。
但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。
每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒 1/2 米的速度移动,减速两次后,则以每秒 1/3 米的速度移动,依此类推。
你将被告知何时何地贝茜会减速。
当减速信息格式为:
T 17
意味着,贝茜在某个时间点减速,本例表示比赛开始第 17 秒贝茜减速。
当减速信息格式为:
D 10
意味着,贝茜在某个地点减速,本例表示在行进 10 米处减速。
给定 N 个减速信息,请计算贝茜滑完一千米需要多少秒。
将你的答案四舍五入到最接近的整数( 0.5 向上舍入为 1)。
输入格式
第一行包含整数 N。
接下来 N 行,每行描述一个减速信息,格式为 T x 或 D x。
无论哪种情况,x 都是一个整数,保证所有减速都在贝茜滑完一千米前发生。
可能同时发生多次减速,那么这会使得贝茜的速度一下子变慢很多。
所有减速信息不一定按顺序给出。
输出格式
输出贝茜滑完一千米所需的总时间。
数据范围
1≤N≤10000
输入样例:
2
T 30
D 10
输出样例:
2970
样例解释
贝茜以每秒 1 米的速度跑完前 10 米,耗时 10 秒。
然后她减速到每秒 1/2 米,接下来的 10 米要花 20 秒。
然后她在第 30 秒时,再次减速到每秒 1/3 米。
滑完剩下的 980 米需要 980×3=2940 秒。
因此,总时间是 10+20+2940=2970 秒。
思路:每次取时间靠前的那一项拓展,另一项伴随拓展。(原来这就叫二路归并…
代码如下:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 10010;
typedef long long LL;
LL a[N],b[N],n,cnt1,cnt2;
int main()
{cin>>n;for(int i=1;i<=n;i++){char c;LL x;cin>>c>>x;if(c=='T') a[++cnt1]=x;else b[++cnt2]=x;}sort(a+1,a+1+cnt1);sort(b+1,b+1+cnt2);LL l=1,r=1,v=1;double jl=0,sj=0;while(l<=cnt1&&r<=cnt2){double t2=(b[r]-jl)*v;double t1=a[l]-sj;if(t1==t2) {sj=a[l];jl=b[r];v+=2;l++;r++;}else if(t1<t2) {jl+=(a[l]-sj)/v;sj=a[l];v++;l++;}else {sj+=(b[r]-jl)*v;jl=b[r];v++;r++;}}while(l<=cnt1) {jl+=(a[l]-sj)/v;sj=a[l];v++;l++;}while(r<=cnt2) {sj+=(b[r]-jl)*v;jl=b[r];v++;r++;}cout<<(LL)(sj+(1000-jl)*v+0.5);return 0;
}
【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】相关推荐
- 寒假每日一题2022【week2 未完结】
目录 1987. 粉刷栅栏[扫描线] 1978. 奶牛过马路[前缀最值] 1969. 品种邻近[哈希表] 1987. 粉刷栅栏[扫描线] 扫描线,注意将一个区间的左端点表示该区间.这样可以避免处理各种 ...
- 寒假每日一题2022【week1 完结】
目录 2058. 笨拙的手指[枚举] 2041. 干草堆[差分] 2060. 奶牛选美[dfs + 思维] 2019. 拖拉机[双端队列] 2014. 岛[思维+离散化] 2005. 马蹄铁[dfs] ...
- AcWing 1934. 贝茜放慢脚步(二路归并)
题目链接 https://www.acwing.com/problem/content/description/1936/ 思路 题目的标签是二路归并,其实就是贪心,可以对比我们之前学习归并算法那里, ...
- AcWing寒假每日一题2058. 笨拙的手指
AcWing寒假每日一题2058. 笨拙的手指 题目描述 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果 ...
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.11日(2017省赛A第9题)
2021年寒假每日一题,2017~2019年的省赛真题. 本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供. 后面的每日一题,每题发一个新博文,请大家看博客目录:https://b ...
- 【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!! 今天还是寒假 ...
- 【寒假每日一题】分巧克力(个人练习)详细题解+推导证明(第八天)附带转载程序员壁纸
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 话说今天开始准备搞一个秋招的GitHub,算是复习一遍了. 今天还是寒假每日一 ...
- AcWing寒假每日一题 2058.笨拙的手指
题目描述:2058. 笨拙的手指 - AcWing题库 奶牛贝茜正在学习如何在不同进制之间转换数字. 但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔. 每当贝茜将数字转换为一个新的进制并写下结果时 ...
- 倪文迪陪你学蓝桥杯2021寒假每日一题:1.20日(2018省赛A组第8题)
2021年寒假每日一题,2017~2019年的省赛真题. 本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供. 后面的每日一题,每题发一个新博文,请大家每天看博客蓝桥杯专栏: htt ...
- acwing----春季每日一题2022篇(二)
春季每日一题2022篇(二) 三角形(枚举) 社交距离 I (分类讨论 + 贪心) 混合牛奶(模拟) 果壳游戏(模拟 + 技巧) 困牛放牧(分类 + 数学知识) 三角形(枚举) 题目链接 题目大意 题 ...
最新文章
- 今日 Paper | 多人线性模型;身体捕捉;会话问答;自然语言解析;神经语义
- 如何在javascript中使用多个分隔符分割字符串?
- APM - 使用JavaAgent+Javassit 插桩C3P0
- Python借助队列实现进程通信
- php接口调用实例源代码,小蚂蚁学习APP接口开发(7)—— APP接口实例——读取缓存方式开发APP接口的代码案例...
- 语言 重量计算_大师之光:有种跨越国界的语言叫C++
- 简单使用jave获取上传视频时长--java后端
- C语言调用函数流程图怎么画,【C语言】求教这个流程图怎么画啊
- URP实现毛玻璃效果一
- 计算机学院校园文化标语,智慧校园文明宣传标语
- numpy 学习汇总18 - 数学运算 (集合,复数)( 基础学习 tcy)
- 利用临时二维码实现在电脑浏览器上的微信扫码登陆功能 - EasyWeChat版
- 从表征到行动---意向性的自然主义进路(续一)
- OneNote for windows10卸载及重装
- todolist(网页版记事本)
- linux流编辑器,linux sed 流编辑器
- 论文信息查询:SCI EI检索、影响因子
- Swift 编码规范
- 记录一次GoLang软件debug模式F7和F8失效问题
- matlab绘制银河系,绘制银河系的1%——Gaia探测器