H - Hiking trip Gym - 103577H

2023-11-08

题目链接
题意:题意很简单就是模拟一个过程,但是模拟很复杂错了很多次。
下面是AC代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    double d,v0,v1,v2,t;
    cin>>d>>v0>>v1>>v2>>t;//没问题,输入
    double start0=0,start1=1,start2=0;//初值,没问题
    double flagt=0;//当前状态下用的时间
    double sumt=0;//当前状态下用的总时间
    //t0表示v0到达终点的时间,t1表示v1到达终点的时间
    double t0=(double)d*1.0/v0*1.0;
    double t1=(double)(d-1)*1.0/v1*1.0;
    if(v1*t+1<d)//最快的人没有到达t1
    {
        double ans;
        while(1)
        {
            flagt=(double)(start1-start0)*1.0/(v2-v1)*1.0;//每次向前走相遇用的时间
            sumt+=flagt;
            if(sumt>=t)//说明时间到了,且是在前进时结束
            {
                sumt-=flagt;
                t-=sumt;
                ans=start0+t*v2;
                break;
            }
            start1+=(double)v1*1.0*flagt*1.0;
            start0+=(double)v0*1.0*flagt*1.0;
            flagt=(double)(start1-start0)*1.0/(v2+v0)*1.0;
            sumt+=flagt;
            if(sumt>=t)//说明时间到了,且是在后退时结束
            {
                sumt-=flagt;
                t-=sumt;
                ans=start1-t*v2;
                break;
            }
            start1+=(double)flagt*v1;
            start0+=(double)flagt*v0;
        }
        printf("%.7lf",ans);
    }
    //以上情况没有问题
    else if(v1*t+1>=d&&v0*t<d)//快的到了,慢的没有到
    {
        double kk;
        double ans;
        int flag=0;
        while(1)
        {
            flagt=(double)(start1-start0)*1.0/(v2-v1)*1.0;//下一次相遇用的时间
            sumt+=flagt;
            if(sumt>=t1&&flag==0)//说明下一次相遇之前v1到了
            {
               sumt-=flagt;
               flagt=(d-start0)*1.0/v2*1.0;//所需要的总时间
               v1=0;
               flag=1;
               start1=d;
               sumt+=flagt;
            }
            if(sumt>=t)//说明时间到了,且是在前进时结束
            {
                sumt-=flagt;
                t-=sumt;
                ans=start0+t*v2;
                break;
            }
            start1+=(double)v1*1.0*flagt*1.0;
            kk=start1;
            start0+=(double)v0*1.0*flagt*1.0;
            flagt=(double)(start1-start0)*1.0/(v2+v0)*1.0;
            sumt+=flagt;
            if(sumt>=t1&&flag==0)//表示往后退的时候,v1到达d
            {
                start1=d;//更新 start1,start0
                v1=0;
                flag=1;
            }
            if(sumt>=t)//说明时间到了,且是在后退时结束
            {
                start1=kk;
                sumt-=flagt;
                t-=sumt;
                ans=start1-t*v2;
                break;
            }
            start1+=(double)flagt*v1;
            start0+=(double)flagt*v0;
        }
        printf("%.7lf\n",ans);
    }
    else printf("%.7lf",d);//快的到了,慢的也到了,最终一定会在终点相遇
    return 0;
}

注意:每个变量都要设成double形式,除了个别的,这一点很容易错

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H - Hiking trip Gym - 103577H 的相关文章

  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • WebSocket安全连接自签名证书

    目标是一个与用户电脑上安装的 C 应用程序交换信息的 Web 应用程序 客户端应用程序是 websocket 服务器 浏览器是 websocket 客户端 最后 用户浏览器中的 websocket 客户端通过 Angular 持久创建 并且
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看

随机推荐

  • JVM学习笔记(快速版)

    JVM 1 常见面试问题 1 谈谈堆JVM的理解 2 java8中JVM的新内容 3 什么是OOM 什么是StackOverFlowError 怎么分析 4 JVM的调优常见参数 5 内存快照如何抓取 6 如何分析Dump文件 2 JVM的
  • 我的周刊(第001期)

    我的信息周刊 记录这周我看到的有价值的信息 主要针对计算机领域 内容主题极大程度被我个人喜好主导 这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享 项目 image to latex 1 可以将数学公式截图然后自动解析成LaTe
  • S5P4418裸机之SDIO程序

    简介 SDIO Secure Digital Input and Output 即安全数字输入输出接口 它是在SD卡接口 的基础上发展而来 通常的存储设备 如TF卡 以及EMMC等存储芯片都是通过SDIO总线来通信的 一 s5p4418的S
  • conda init

    在输入conda activate 的时候出现报错 解决 需要使用 conda init 进行初始化 的错误通常是由于你的系统环境缺少 conda 的初始化脚本所致 当你尝试在终端中执行 conda activate 命令时 会出现此错误提
  • 1.1 new关键字及内存泄漏

    new关键字是C 用来动态分配内存的主要方式 代码演示 new可以直接分配单个变量的内存 也可以分配数组 在分配单个对象的内存时 当对象是普通变量时 可以分配对应的内存 include
  • 雪球网

    aa 600774 600715 002962 002706 600874 002730 300328 600727 834779 300188 300225 603967 002637 000715 837679 300310 30048
  • linux 目录文件对比,Linux下快速比较两个目录的不同

    曾多次想要在Linux下比较目录a和目录b中文件列表的差别 然后对目录a比目录b中多出的文件 少掉的文件分别做处理 但是 在网上搜索了多次也都没找到能直接处理好的工具 所以想了很多不少方法 自我感觉都不错 而且网上似乎没有这方面的文章 所以
  • Python数据分析实战(3)Python实现数据可视化

    文章目录 一 数据可视化介绍 二 matplotlib和pandas画图 1 matplotlib简介和简单使用 2 matplotlib常见作图类型 3 使用pandas画图 4 pandas中绘图与matplotlib结合使用 三 订单
  • 出现次数最多的数CSP201312-1(简单c语言解法)

    问题描述 给定n个正整数 找出它们中出现次数最多的数 如果这样的数有多个 请输出其中最小的一个 输入格式 输入的第一行只有一个正整数n 1 n 1000 表示数字的个数 输入的第二行有n个整数s1 s2 sn 1 si 10000 1 i
  • Linux中ssh基于密匙的安全验证过程是怎样的?

    在Linux中 ssh是非常重要的存在 但很多人对 ssh 这个概念很模糊 听起来也很晦涩难懂 那么Linux ssh是什么 有什么用 这篇文章为你解答一下 SSH是一种协议 SSH是较可靠 专为远程登录会话和其他网络服务提供安全性的协议
  • BufferedImage 基本操作

    1 创建一个图片 并且写入文件 BufferedImage grayImage new BufferedImage 512 512 BufferedImage TYPE INT ARGB ImageIO write grayImage jp
  • 利用函数求数组[5,2,99,101,67,77]中的最大值

  • 后台开发工具篇之xampp

    一 解决问题 在进行后台开发时 我们很多时候都需要先在本地编写与调试代码 这就需要我们首先在本地搭建服务器开发环境 但是 搭建过的朋友应该知道 环境的搭建可不是三两步就可以搞定的 举例来说 如果我们要在本地Windows环境中搭建PHP服务
  • 图像预处理——CV

    目录 1 图像预处理 1 1 图像显示与存储原理 1 2 图像增强的目标 1 3 点运算 基于直方图的对比度增强 1 4 形态学处理 1 5 空间域处理 卷积 1 6 卷积的应用 平滑 边缘检测 锐化等 1 7 频率域处理 傅里叶变换 小波
  • 薪资12k,在银行外包做软件测试是一种什么体验...

    背景 本人普通二本本科毕业 4 年 目前是在广州工作 是一家大型的人力外包公司外包到银行的开发人员 这可能也是长期在各大招聘软件上最积极的招聘岗位 从入职到现在已经有四个月了 也大概了解了外包的主要工作情况 也有了一些心得体会 借此机会也简
  • 【解决】NullReferenceException: Object reference not set to an instance of an object

    游戏引擎 Unity 版本 2019 4 6f1 2017版本以上均可 编译平台 Visual Studio 2019 一 问题描述 描述 原 文 报错 NullReferenceException Object reference not
  • IT云运维技术分享

    1 运维体系 1 1 市场对运维的需求 时代发展到今天 社会的生活方式与生产方式的全面的数字化 无论是传统企业还是互联网企业 都在全面上云 这也意味着企业的关键业务乃至 身家性命 都已经全部放在 IT 系统之上 因此企业需要系统足够稳定可靠
  • python37-32_python37.dll文件 免费版

    python37 dll文件是一款非常重要的系统文件 你还在为python37 dll文件缺失出错而苦恼吗 小编推荐你使用这款软件 它可以帮助大家修复因为缺失python37 dll引起的一场和报错 只需要在本站下载压缩包解压后安装在指定文
  • 神经网络-Unet网络

    文章目录 前言 1 seq2seq 编码后解码 2 网络结构 3 特征融合 4 前言 Unet用来做小目标语义分割 优点 网络结构非常简单 大纲目录 2016年特别火 在细胞领域做分割特别好 1 seq2seq 编码后解码 2 网络结构 几
  • H - Hiking trip Gym - 103577H

    题目链接 题意 题意很简单就是模拟一个过程 但是模拟很复杂错了很多次 下面是AC代码 include