zoukankan      html  css  js  c++  java
  • 2017 计蒜之道 初赛 第三场

    在腾讯课堂的物理课上,进行了一个有趣的物理实验。

    在一个长度为 LL 米的光滑轨道上,小车 A 在 00 时刻以 1mathrm{m/s}1m/s 的速度从左端出发向右运动,小车 B 在 tt 时刻以 1mathrm{m/s}1m/s 的速度从右端出发向左运动,两个小车的质量相等。假设所有碰撞都是弹性碰撞,也就是当两个小车相向碰撞时,他们各自会以原来的速度向相反的方向运动;小车和轨道两端发生碰撞时,小车会以原速度向反方向运动。

    试求出 TT 时刻的时候,两个小车相距多远。

    输入格式

    输入三个整数 L(1 le L le 1000),L(1≤L≤1000), t(0 le t le 1000),t(0≤t≤1000), T(t le T le 1000)T(t≤T≤1000)。

    输出格式

    输出 TT 时刻两车之间的距离。

    样例输入1

    10 4 7
    样例输出1

    0
    样例输入2

    8 3 9
    样例输出2

    5
    题解:碰撞其实可以视为相互穿越,那么两车其实可以视为没有任何相互影响,然后单独模拟即可。

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int main()
    {
        int L,t,T;
        while(~scanf("%d%d%d",&L,&t,&T))
        {
            //先假设同一起点
            t=T-t;//乙开始跑的时间
            while(T>=2*L)//除去多余的来回
            {
                T=T%(2*L);
            }
            if(T>=L)//最后真正的落脚点
                T=2*L-T;
            while(t>=2*L)
            {
                t=t%(2*L);
            }
            if(t>=L)//同理
                t=2*L-t;
            t=L-t;//其实方向不一样,所以改变方向
            printf("%d
    ",abs(T-t));
        }
        return 0;
    }
    
  • 相关阅读:
    linux 定时脚本任务的创建
    win10 Edge 无法上网代理服务器错误
    CentOS 7 系统root用户忘记密码的重置方法
    通过挂载系统光盘搭建本地yum仓库的方法
    Oauth服务端协议开发
    mongodb 用户权限控制
    javascript 数组方法拼接html标签
    存储管理与linux内存寻址(1)
    原型模式
    背包,队列,栈的java实现
  • 原文地址:https://www.cnblogs.com/zxy160/p/7215100.html
Copyright © 2011-2022 走看看