奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。
她以每秒 1 米的速度出发。
但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。
每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒 1/2 米的速度移动,减速两次后,则以每秒 1/3 米的速度移动,依此类推。
你将被告知何时何地贝茜会减速。
当减速信息格式为:

T 17

意味着,贝茜在某个时间点减速,本例表示比赛开始第 17 秒贝茜减速。
当减速信息格式为:

D 10

意味着,贝茜在某个地点减速,本例表示在行进 101010 米处减速。
给定 NNN 个减速信息,请计算贝茜滑完一千米需要多少秒。
将你的答案四舍五入到最接近的整数(0.5 向上舍入为 1)。

输入格式
第一行包含整数 N。
接下来 N 行,每行描述一个减速信息,格式为T x或 D x。
无论哪种情况,x 都是一个整数,保证所有减速都在贝茜滑完一千米前发生。
可能同时发生多次减速,那么这会使得贝茜的速度一下子变慢很多。
所有减速信息不一定按顺序给出

输出格式
输出贝茜滑完一千米所需的总时间。

数据范围
1≤N≤100001≤N≤100001≤N≤10000

输入样例
2
T 30
D 10输出样例
2970


分析 在所有减速点上,D操作和T操作并不是同一时间上的,也就是说需要分别讨论然后按拓扑序归并
a[]表示T操作点,b[]表示D操作点也就是只需讨论每个对应操作点谁先发生然后进行归并最终得到的拓扑序就是整个时间轴上全部的减速操作

设之前经过t时刻到a[i]T操作点,b[j]为D操作点若t−a[i]<(b[j]−s)1vt-a[i]<\frac{(b[j]-s)}{\frac{1}{v}}t−a[i]<v1​(b[j]−s)​ 则说明a[i]a[i]a[i]操作在拓扑序前,反之则在后

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;const int N = 10010;int n;
vector<int> a, b;int main()
{scanf("%d", &n);char str[2];int x;while (n -- ){scanf("%s%d", str, &x);if (*str == 'T') a.push_back(x);else b.push_back(x);}b.push_back(1000);sort(a.begin(), a.end());sort(b.begin(), b.end());double t = 0, s = 0, v = 1;  // v 是速度的倒数int i = 0, j = 0;while (i < a.size() || j < b.size())if (j == b.size() || i < a.size() && a[i] - t < (b[j] - s) * v){s += (a[i] - t) / v;t = a[i];v ++ ;i ++ ;}else{t += (b[j] - s) * v;s = b[j];v ++ ;j ++ ;}printf("%.0lf\n", t);return 0;
}

AcWing每日一题 1934贝茜放慢脚步相关推荐

  1. AcWing 1934. 贝茜放慢脚步(二路归并)

    题目链接 https://www.acwing.com/problem/content/description/1936/ 思路 题目的标签是二路归并,其实就是贪心,可以对比我们之前学习归并算法那里, ...

  2. AcWing每日一题2041. 干草堆

    AcWing每日一题2041. 干草堆 题目描述 贝茜对她最近在农场周围造成的一切恶作剧感到抱歉,她同意帮助农夫约翰把一批新到的干草捆堆起来. 开始时,共有 N 个空干草堆,编号 1∼N. 约翰给贝茜 ...

  3. acwing——每日一题——总结

    acwing--每日一题--总结 第一周 1.笨拙的手指(考查点:进制转换) 2.干草堆(考查点:差分+前缀和) 3.奶牛选美(bfs模板+floodfill算法) 4.拖拉机(bfs+双端队列=迪杰 ...

  4. acwing 每日一题 1761.阻挡广告牌

    题目描述:(不想读题直接看最后的分析) 在漫长的产奶期间,奶牛贝茜喜欢透过窗户盯着马路对面的两个巨大的矩形广告牌,上面写着"农夫亚历克斯的惊人开胃苜蓿"和"农夫格雷格的大 ...

  5. acwing每日一题(8.12 ~ 8.14)

    2022.8.12 Leetcode 128  用户分组 1282. 用户分组 - 力扣(LeetCode) 思路:我们用哈希表存储  键:不同大小的组     值:组内元素 (用一个链表或者Arra ...

  6. Acwing每日一题 4366. 上课睡觉

    题目链接:4366. 上课睡觉 - AcWing题库 思路:暴力枚举,枚举每种最终每堆石头的数量和. AC代码 #include<iostream> using namespace std ...

  7. AcWing每日一题 3565.完美矩阵(绝对值不等式)

    完美矩阵 原题链接 CSDN居然把标题字数限制改到了30....完全不够呀..可恶QWQ 如果一个矩阵能够满足所有的行和列都是回文序列,则称这个矩阵为一个完美矩阵. 一个整数序列 a1,a2,-,ak ...

  8. AcWing每日一题 3333.K-优字符串(水题)

    K-优字符串 原题链接 Charles 将一个字符串的优良分数定义为,在 1≤i≤N/2 的范围内,满足 Si≠SN−i+1 的 i 的数量(索引从 1 开始). 例如,字符串 CABABC 的优良分 ...

  9. ACwing每日一题3565暴力 绝对值不等式 中位数思维

    题目 链接 题解思路 这里的用auto遍历 set 是C++11的特性. 这里用了暴力法,回文满足的充分必要条件是数值关于中间位置上下左右对称,也就是行列对称. 我们只要每次取这四个点(一般)取出它们 ...

  10. AcWing每日一题

    1813. 方块游戏 分析: 题目要求在一块板子的正反两面单词中选一面单词,这两个单词有可能有共同部分,因为题目要求,不管每个板子哪一侧朝上,都要组成n个单词,所有如果两个单词有共同部分,我们需要保留 ...

最新文章

  1. Java 快速排序算法实现-----面试
  2. 最强代码生成器平台,杀疯了!
  3. LuoguP1948 电话线 【二分答案/图论】
  4. 搜索引擎早期重要论文推荐系列【7】《Searching the Web》
  5. Scrapy--1安装和运行
  6. SI4463的数据冲撞解决办法【转】
  7. 使用Bookinfo应用测试Kuma服务网格
  8. 大数据Spark Continuous Processing
  9. c语言编程等边三角形代码,C语言中 正 倒等边三角形的代码
  10. 光遇服务器维护要多久,光遇:你玩游戏多久了?半年以上的老玩家,是如何坚持下去的?...
  11. c758f52e87.html,查看源码: rainsoft_200372295849.rar_AboutFrm.dfm - VerySource
  12. 【读书笔记 1】《读大江大河 有感》
  13. Ubuntu 之 Audacity踩坑之旅
  14. Jetson Nano控制SIM7020 开关机
  15. LVGL 官方UI设计工具 EdgeLine代码移植
  16. 什么是CSM(Certified Scrum Master) 敏捷认证
  17. 贾跃亭旗下FF去年第三季净亏3亿美元 暂时避免退市危机
  18. Markdown绘制流程图的方法
  19. 艺术二维码生成神器!
  20. 实验三 有限自动机的构造与识别

热门文章

  1. python微信红包代码_哄女朋友必备之微信自动发红包脚本(python+adb+androidviewclient)...
  2. 函数 over() 的含义
  3. ISO9000、CMM(I)、6sigma与对象分析技术
  4. python 摄氏度和华氏度温度转换案例
  5. 触摸屏——S5PV210的触摸屏的理论与操作
  6. ylbtech-dbs:ylbtech-4,PurpleHouse(房地产楼盘销售系统)
  7. 显示器3d测试软件,IPS显示屏/裸眼3D显示原理及3D应用
  8. 南京国际动漫游戏博览会 一日游(10-5)
  9. better-scroll基本使用
  10. 计算机专业刊头,如何自己动手做电子报纸?