首页 > 其他分享 >寒假每日一题——贝茜放慢脚步

寒假每日一题——贝茜放慢脚步

时间:2023-04-02 18:48:18浏览次数:38  
标签:10 ++ 贝茜 减速 寒假 放慢 每秒 size

贝茜放慢脚步

问题描述

奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。

她以每秒 1 米的速度出发。

但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。

每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒 1/2 米的速度移动,减速两次后,则以每秒 1/3 米的速度移动,依此类推。

你将被告知何时何地贝茜会减速。

当减速信息格式为:

T 17

意味着,贝茜在某个时间点减速,本例表示比赛开始第 17 秒贝茜减速。

当减速信息格式为:

D 10

意味着,贝茜在某个地点减速,本例表示在行进 10 米处减速。

给定 N 个减速信息,请计算贝茜滑完一千米需要多少秒。

将你的答案四舍五入到最接近的整数( 0.5 向上舍入为 1)。

输入格式
第一行包含整数 N

接下来 N 行,每行描述一个减速信息,格式为 T xD 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 <bits/stdc++.h>
using namespace std;

int n;
vector<int> a, b;

int main()
{
    cin >> n;
    while(n -- )
    {
         char str[2];
    int x;
    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;
    int i = 0, j = 0;
    
    while(i < a.size() && j < b.size())
    {
        if(a[i] - t < (b[j] - s) * v)
        {
            s += (a[i] - t) / v;
            t = a[i];
            i++;
            v++;
        }
         else 
        {                                 
            t += (b[j] - s) * v;
            s = b[j];
            j++;
            v++;
        }
    }
    
    while(i < a.size())
    {
         s += (a[i] - t) / v;
            t = a[i];
            i++;
            v++;
    }
    while(j < b.size())
    {
        t += (b[j] - s) * v;
            s = b[j];
            j++;
            v++;
    }
    printf("%.0lf\n", t);
    return 0;
}

标签:10,++,贝茜,减速,寒假,放慢,每秒,size
From: https://www.cnblogs.com/i-rong/p/17280963.html

相关文章

  • 寒假每日一题——圆形牛棚
    圆形牛棚问题描述作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。牛棚内部有n个房间,围成一个环形,按顺时针编号为1∼n。每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。约翰想让第i个房间内恰好有ri头牛。为了让奶牛们有序的进入牛棚,他计划......
  • 寒假每日一题——镜子田地
    镜子田地问题描述农夫约翰在屋子外面放了一些旧镜子,他的奶牛们像往常一样调皮地偷走了它们!奶牛们将镜子放置在了一个矩形田地中,该田地可被划分为N×M个方格区域。在每个方格区域中,奶牛在其某对对角之间放置一个双面镜,因此,共有两种放法,一种为/放置(镜子连接方格左下角和右......
  • 寒假每日一题——懒惰的牛
    懒惰的牛问题描述这是一个炎热的夏日。懒洋洋的奶牛贝茜想将自己放置在田野中的某个位置,以便可以在短距离内尽可能多地吃到美味的草。贝茜所在的田野中共有N片草地,我们可以将田野视作一个一维数轴。第i片草地中包含gi单位的青草,位置坐标为xi。不同草地的位置不同。......
  • 寒假每日一题——金发姑娘和N头牛(map+手写离散化)
    金发姑娘和N头牛问题描述你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有N头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛i,使其感到舒适的温度为Ai…Bi。如果金发姑娘将牛棚的恒温器的温度T设置......
  • 寒假每日一题——闪烁(状态压缩)
    闪烁问题描述农夫约翰对牛棚里昏暗的灯光感到不满,刚刚安装了一个新吊灯。新吊灯由N个灯泡组成,这N个灯泡围成一圈,编号为0∼N−1。奶牛对这个新吊灯非常着迷,并且喜欢玩以下游戏:对于第i个灯泡,如果在T−1时刻,它左侧的灯泡(当i>0时,为第i−1个灯泡;当i=0时,为第N−1......
  • 寒假每日一题——困牛排序(思维题)
    困牛排序问题描述FarmerJohn正在尝试将他的N头奶牛,方便起见编号为1…N,在她们前往牧草地吃早餐之前排好顺序。当前,这些奶牛以p1,p2,p3,…,pN的顺序排成一行,FarmerJohn站在奶牛p1前面。他想要重新排列这些奶牛,使得她们的顺序变为1,2,3,…,N,奶牛1在FarmerJohn旁......
  • 寒假每日一题——大型植被恢复
    大型植被恢复问题描述长时间的干旱使得FarmerJohn的N块草地上牧草匮乏。随着雨季即将到来,现在应当是重新种植的时候了。在FarmerJohn的储物棚里有四个桶,每个桶里装着一种不同的草种。他想要在每块草地上播种其中一种草。作为一名奶农,FarmerJohn想要确保他的每头奶......
  • 2022牛客寒假算法基础集训营2 签到题7题
    1、C小沙的杀球如果你能够杀球但不杀球,虽然回复了体力,但你后续可能会没有机会继续杀球,并且杀球次数相同,那么回复的体力是相同的,所以在同等条件下,我们应该尽可能多的杀球。......
  • 2022牛客寒假算法基础集训营1 签到题7题
    1、L.牛牛学走路恭喜你签到成功#include<bits/stdc++.h>usingnamespacestd;intmain(){intT;cin>>T;while(T--){intn;cin>>n;strin......
  • 2022牛客寒假算法基础集训营3 签到题7题(附基础集训营1-3签到题总结)
    1、A-智乃的HelloXXXX签到#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"hellochino\n";return0;}2、B-智乃买瓜背包#include<bits/stdc+......