算法题目:北邮python 3-C 排队前进
一道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 排队前进的更多相关文章
- 北邮14&18年软院机试【参考】答案
2014 Problem A. 奇偶求和 题目描述: 给定N个数,分别求出这N个数中奇数的和以及偶数的和. 输入格式 第一行为测试数据的组数T(1<=T<=50).请注意,任意两组测试数据 ...
- 北邮oj 104. 912星球的研究生
104. 912星球的研究生 时间限制 1000 ms 内存限制 65536 KB 题目描述 最近912星球的研究生入学了,912星球的教务处因此忙的焦头烂额,要求yzr做一个信息管理系统登陆查询研究 ...
- 北邮oj 97. 二叉排序树
97. 二叉排序树 时间限制 1000 ms 内存限制 65536 KB 题目描述 二叉排序树,也称为二叉查找树.可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 若左子树非空,则左子树上所有节 ...
- Top Coder算法题目浏览器
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/top-code-offline-browser/ 关于 左耳朵耗子 ...
- 一道算法题目, 二行代码, Binary Tree
June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Home ...
- iOS面试中常见的算法题目
一.前言 这里是在iOS求职中自己遇到的算法题,希望对大家有所帮助.不定期更新.如果大家想在线运行代码调试,可以将代码拷贝到这里.然后进行调试.下面就是常见的算法题目. 二.正文 1.就n的阶乘.(这 ...
- 机器学习经典算法详解及Python实现--基于SMO的SVM分类器
原文:http://blog.csdn.net/suipingsp/article/details/41645779 支持向量机基本上是最好的有监督学习算法,因其英文名为support vector ...
- 【起】ACM类下为过往所做过的部分算法题目
[起]ACM类下为过往所做过的部分算法题目 几百道题,日后细细品味.
- 机器学习经典算法具体解释及Python实现--线性回归(Linear Regression)算法
(一)认识回归 回归是统计学中最有力的工具之中的一个. 机器学习监督学习算法分为分类算法和回归算法两种,事实上就是依据类别标签分布类型为离散型.连续性而定义的. 顾名思义.分类算法用于离散型分布预測, ...
随机推荐
- php 反射 实例化类
<?php class Person { public $name; public $sex; public function __construct($name,$sex=1) { $this ...
- python爬虫获取下一页
from time import sleep import faker import requests from lxml import etree fake = faker.Faker() base ...
- spring注解@Transactional 和乐观锁,悲观锁并发生成有序编号问题
需求:系统中有一个自增的合同编号,在满足并发情况下,生成的合同编号是自增的. 测试工具:Apache Jmeter 实现方法: 创建一个数据库表.编号最大值记录表 表结构类似 CREATE TAB ...
- Ⅰ Introduction to Reinforcement Learning
Dictum: To spark, often burst in hard stone. -- William Liebknecht 强化学习(Reinforcement Learning)是模仿人 ...
- 用c++获取随机数
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535 ...
- ASP.NET CORE 开发微信公众号(一、测试号管理)
一.注册账号 百度微信公众平台,点击进入. 二.公众平台测试账号 点击进入平台后居然是小程序,我也很费解.以前是找到开发->开发者工具->公众平台测试账号,现在毛都没有了. 不过可以点击这 ...
- Go之NSQ简介,原理和使用
NSQ简介 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息.它具有分布式和去中心化 ...
- 重要,知识点:InnoDB的插入缓冲
世界上最快的捷径,就是脚踏实地,本文已收录[架构技术专栏]关注这个喜欢分享的地方. InnoDB引擎有几个重点特性,为其带来了更好的性能和可靠性: 插入缓冲(Insert Buffer) 两次写(Do ...
- 用GitHub Pages搭建博客(一)
什么是GitHub Pages GitHub官网介绍 GitHub Pages 官网是这样介绍的: Websites for you and your projects. 给你和你的项目的网站. Ho ...
- Appium常用操作之「元素定位、swipe 滑屏操作」
坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.打开 uiautomatorviewer 二.Appium 常用操作 1.用 layui 做 ...