一道python作业的题目,比较有意思,题目如下:

题目描述

有 n 个人排队向一个方向前进,他们前进的速度并不一定相同。 最开始即 t=0 时,每个人的位置并不相同。可以把他们放在数轴上,设他们前进的方向为正方向,对于从左往右第 i 个人,编号为 i,他的初始位置为xi ,初始速度为vi。编号为1的人(队尾,位于数轴最左侧)的位置总为坐标原点,即总有x1=0。(位置单位为米,速度单位为米每秒)。 虽然他们的前进速度不同,但是他们要保证前后顺序不能变。即i追赶上 i+1 的时候, i 将会紧跟 i+1 以 i+1 的当前速度前进.可以认为他们是紧挨着的,之间的距离可以忽略不计。 求编号为1的人前进 s 米需要多少秒.

输入

第一行两个整数n,s,其中(1<=n,s<=100,000),代表n个人排队前进,以及最后的一个人需要前进的距离为s米。 接下来n行,每行两个整数xi,vi,代表第i个人的位置xi,以及他的初始速度vi,保证(0=x1≤x2≤..≤xn≤100,000,1≤vi≤100,000)。

输出

输出一个小数,按照四舍五入的原则恰好保留小数点后两位(测试数据保证答案的小数点后第三位不是4或5)。

样例输入

3 4

0 3

1 2

2 1

样例输出

2.00

也就是说一队人同时在不同位置沿直线向同一方向开跑,如果跑得快的人追到了跑得慢的人,那就得和慢的人“陪跑”,问最后一个人需要多长时间才能到达终点。



题目中有个重要点是大家是一起跑的,也就是说如果A君跑的过程中和B君“陪跑”了,那么他俩达到终点时所花时间时相同的。借此可以推断,最后一个人跑到终点的时间,是他及开始位置在他之前的每个人直接跑到终点所花时间的最大值。可以反证:如果最后一个人所用时间不是这个最大值,那么当他跑到终点时还有人没有跑完,也就是说最后一个人超过了那个速度慢一些、还没有跑完的人。由此问题迎刃而解。

tempList = input().split()
person = int(tempList[0])
distance = int(tempList[1])
array = []
time = 0.0
for i in range(0, person):
array = input().split()
temptime = float((distance - int(array[0])) / int(array[1]))
if temptime > time:
time = temptime round(time, 2)
print('%.2f' % time)

算法题目:北邮python 3-C 排队前进的更多相关文章

  1. 北邮14&18年软院机试【参考】答案

    2014 Problem A. 奇偶求和 题目描述: 给定N个数,分别求出这N个数中奇数的和以及偶数的和. 输入格式 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据 ...

  2. 北邮oj 104. 912星球的研究生

    104. 912星球的研究生 时间限制 1000 ms 内存限制 65536 KB 题目描述 最近912星球的研究生入学了,912星球的教务处因此忙的焦头烂额,要求yzr做一个信息管理系统登陆查询研究 ...

  3. 北邮oj 97. 二叉排序树

    97. 二叉排序树 时间限制 1000 ms 内存限制 65536 KB 题目描述 二叉排序树,也称为二叉查找树.可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 若左子树非空,则左子树上所有节 ...

  4. Top Coder算法题目浏览器

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/top-code-offline-browser/ 关于 左耳朵耗子 ...

  5. 一道算法题目, 二行代码, Binary Tree

    June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Home ...

  6. iOS面试中常见的算法题目

    一.前言 这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助.不定期更新.如果大家想在线运行代码调试,可以将代码拷贝到这里.然后进行调试.下面就是常见的算法题目. 二.正文 1.就n的阶乘.(这 ...

  7. 机器学习经典算法详解及Python实现--基于SMO的SVM分类器

    原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector  ...

  8. 【起】ACM类下为过往所做过的部分算法题目

    [起]ACM类下为过往所做过的部分算法题目 几百道题,日后细细品味.

  9. 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法

    (一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...

随机推荐

  1. centos8环境安装配置rsync

    一,查看本地centos的版本: [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ...

  2. tamcat7.0(安装文件下载)

    安装包:http://files.cnblogs.com/files/chenghu/apache-tomcat-7.0.27.rar http://files.cnblogs.com/files/c ...

  3. 人生第一篇博客 , 当然是经典的 "Hello World"

    package com.cqvie.Hello; public class FirstDemo {  public static void main(String[] args) {  System. ...

  4. 自学Python可以吗?怎样从入门到大师?我写这篇文章告诉你

    前言 很多粉丝朋友问我该如何去学习爬虫.学习Python.自学能找到工作吗?等一系列的问题.今天我就来回答一下大家. 第一点 确定好方向与目标 当决定踏入这个行业那一刻起,我想每一个人都爱已经准备投身 ...

  5. [阿里DIN] 从论文源码学习 之 embedding层如何自动更新

    [阿里DIN] 从论文源码学习 之 embedding层如何自动更新 目录 [阿里DIN] 从论文源码学习 之 embedding层如何自动更新 0x00 摘要 0x01 DIN源码 1.1 问题 1 ...

  6. Java数据结构-03单链表(二)

    在之前我们封装了一些操作在接口类中,并在抽象类实现了相同的方法.下面我们开始写代码: 无头结点单链表:(注意下面的AbstractList是之前抽取的类,不是java.util包下的类) public ...

  7. 用GitHub Pages搭建博客(二)

    本篇介绍基本GitHub Pages的搭建流程 GitHub账号及仓库创建 登录GitHub,录入用户名.邮箱.密码,创建成功后登录进入. 注册时,邮箱建议不使用QQ邮箱.因为一些第三方部署类网站不支 ...

  8. SpringBoot第五集:整合监听器/过滤器和拦截器(2020最新最易懂)

    SpringBoot第五集:整合监听器/过滤器和拦截器(2020最新最易懂) 在实际开发过程中,经常会碰见一些比如系统启动初始化信息.统计在线人数.在线用户数.过滤敏/高词汇.访问权限控制(URL级别 ...

  9. model的基础操作

    1.创建表 1.1 Meta源信息 from django.db import models class UserInfo(models.Model): username = models.CharF ...

  10. (一)http协议介绍

    HTTP协议详解 (一) 介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本 ...