题目描述

从小明家所在公交站出发有n路公交到公司,现给出每路公交的停站数(不包括起点和终点),及每次停的时间(一路车在每个站停的时间相同)和发车的间隔,先假定每辆车同时在相对时间0分开始发车,且所有车在相邻两个站之间的耗时相同,都为5分钟。给定小明起床的相对时间(相对0的分钟数),请计算他最早到达公司的相对时间。

给定每路车的停站数stops,停站时间period,发车间隔interval及公交路数n,出发时间s。请返回最早到达时间。保证公交路数小于等于500,停站数小于等于50。

代码如下:

 package com.yzh.hehe;

 import java.util.Scanner;

 public class TakeBusChooseLine {

     public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
// "[13,15,26,7,27,3,30],[1,2,1,2,2,2,1],[5,1,4,3,2,1,4],7,10"
while (scanner.hasNext()) { String string=scanner.nextLine();
// String string1="\"[13,15,26,7,27,3,30],[1,2,1,2,2,2,1],[5,1,4,3,2,1,4],7,10\"";
// String string2="[13,15,26,7,27,3,30],[1,2,1,2,2,2,1],[5,1,4,3,2,1,4],7,10";
String[] sArr=string.split("]");
int n=Integer.parseInt(sArr[3].split(",")[1]);
string=sArr[3].split(",")[2];
int s=Integer.parseInt(string.substring(0, string.length()-1));
String[] stopStrings=sArr[0].substring(2).split(",");
String[] periodStrings=sArr[1].substring(2).split(",");
String[] intervalStrings=sArr[2].substring(2).split(",");
int[] stops=new int[n],period=new int[n],interval=new int[n];
for (int i = 0; i < n; i++) {
stops[i]=Integer.parseInt(stopStrings[i]);
period[i]=Integer.parseInt(periodStrings[i]);
interval[i]=Integer.parseInt(intervalStrings[i]); }
System.out.println(takeBusChooseLine(stops, period, interval, n, s)); }
scanner.close(); } /*
* 三部分组成: 等待上车时间(interval[i]-s%interval[i]);车站停靠时间(stops[i]*period[i]);路上行动时间((stops[i]+1)*5),根据贪心原则三者时间和最短者最先到公司,记得结果要加上起床时的相对时间
*/
private static int takeBusChooseLine(int[] stops, int[] period, int[] interval, int n, int s) {
int kaishi=interval[0]-s%interval[0]; int shortest=(kaishi==interval[0]?0:kaishi)+stops[0]*period[0]+(stops[0]+1)*5;;
int temp=0;
for (int i = 1; i < n; i++) {
kaishi=interval[i]-s%interval[i];
temp=(kaishi==interval[i]?0:kaishi)+stops[i]*period[i]+(stops[i]+1)*5;
shortest=shortest>temp?temp:shortest;
}
return shortest+s;
}
}

解题(TakeBusChooseLine)的更多相关文章

  1. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  2. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  3. HDU 3791二叉搜索树解题(解题报告)

    1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...

  4. 【BZOJ1700】[Usaco2007 Jan]Problem Solving 解题 动态规划

    [BZOJ1700][Usaco2007 Jan]Problem Solving 解题 Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地 ...

  5. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  6. wechall.net/stegano 解题心得

    /* 转载请注明出处:http://www.cnblogs.com/Martinium/p/wechall_stegano.html */ 最近迷上了 www.wechall.net 网站,里面都是些 ...

  7. Mountains(CVTE面试题)解题报告

    题目大意: 用一个数组代表群山的高度.高度大的地方代表山峰,小的地方代表山谷.山谷可以容水.假设有一天下了大雨,求群山中总共可以容纳多少水? 如图所示情况,a代表该数组,总共可以容纳5个水. 解题思路 ...

  8. timus 1180. Stone Game 解题报告

    1.题目: 1180. Stone Game Time limit: 1.0 secondMemory limit: 64 MB Two Nikifors play a funny game. The ...

  9. timus 1175. Strange Sequence 解题报告

    1.题目描述: 1175. Strange Sequence Time limit: 1.0 secondMemory limit: 2 MB You have been asked to disco ...

随机推荐

  1. mysql数据库-定义函数-存储过程写法

    ------------- mysql  定义自定义函数写法 DELIMITER $$ USE `iwmsdb`$$ DROP FUNCTION IF EXISTS `F_WM_DBNAME`$$ C ...

  2. BIOS(Basic Input/Output System)是基本输入输出系统的简称

    BIOS(Basic Input/Output System)是基本输入输出系统的简称 介绍 操作系统老师说,平时面试学生或者毕业答辩的时候他都会问这个问题,可见这个问题对于计算机专业的学生来说是如此 ...

  3. layui选项卡-内容为echarts图显示不全的问题

    var width = $("威胁类型ID").width();var height = $("威胁类型ID").height(); $("#威胁来源 ...

  4. python 进程之间的数据共享

    from multiprocessing import Process,Manager import os def f(d,n): d[os.getpid()] = os.getppid()#对字典d ...

  5. build to win读后感

    在软件开发的过程中,不能盲目去show自己的成果,而是要大量考虑别人的意见,在广范围的撒网之后,收集意见,最后在一锤定音. 还有就是,要懂得团队合作,例如,本文介绍了一个事例,作者的团队与科研团队合作 ...

  6. hsdfz -- 6.17 -- day2

    今日依旧康复…… 当天晚上被老师拉去小吃街了,晚上回来精力憔悴,所以并没有当天写 反正就惨,因为估错复杂度,期望得分100分最后结果20分 (我的复杂度是nlog^2n的,正确性有保障,稳! 事后:还 ...

  7. js 遍历EL表达式 list对象

    无法直接通过"${topicList}"获取对象,需要通过<c:forEach>获取list里的对象: var topicListArry = new Array(); ...

  8. asp.net:mv4 FileResult在IE8中下载不显示文件名和扩展名而显示Action方法名了!

    IE8下,用户点击下载文件,会发现文件类型失丢的问题,解决方案如下: //IE8下载时,只显示action的名字,没有文件名和后缀 @仰止网Simba //return File(bufferbyte ...

  9. mongodb与mysql命令详细对比

    传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象(docu ...

  10. 20165312 2017-2018-2 《JAVA程序设计》第4周学习总结

    一.课本五六章知识点总结 1.第五章 继承是一种由已有的类创建新类的机制 子类继承父类的成员变量和方法 子类继承的方法只能操作子类继承和隐藏的成员变量 子类重写或新增的方法只能操作子类继承和新声明的成 ...