解题(TakeBusChooseLine)
题目描述
从小明家所在公交站出发有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)的更多相关文章
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- HDU 3791二叉搜索树解题(解题报告)
1.题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3791 2.参考解题 http://blog.csdn.net/u013447865/articl ...
- 【BZOJ1700】[Usaco2007 Jan]Problem Solving 解题 动态规划
[BZOJ1700][Usaco2007 Jan]Problem Solving 解题 Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地 ...
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- wechall.net/stegano 解题心得
/* 转载请注明出处:http://www.cnblogs.com/Martinium/p/wechall_stegano.html */ 最近迷上了 www.wechall.net 网站,里面都是些 ...
- Mountains(CVTE面试题)解题报告
题目大意: 用一个数组代表群山的高度.高度大的地方代表山峰,小的地方代表山谷.山谷可以容水.假设有一天下了大雨,求群山中总共可以容纳多少水? 如图所示情况,a代表该数组,总共可以容纳5个水. 解题思路 ...
- timus 1180. Stone Game 解题报告
1.题目: 1180. Stone Game Time limit: 1.0 secondMemory limit: 64 MB Two Nikifors play a funny game. The ...
- timus 1175. Strange Sequence 解题报告
1.题目描述: 1175. Strange Sequence Time limit: 1.0 secondMemory limit: 2 MB You have been asked to disco ...
随机推荐
- i3wm 入门
安装 所用Linux版本为kali-rolling,直接安装 apt install i3 设置为xinit的启动对像 修改 ~/.xserverrc #!/bin/sh exec /usr/bin/ ...
- BIOS(Basic Input/Output System)是基本输入输出系统的简称
BIOS(Basic Input/Output System)是基本输入输出系统的简称 介绍 操作系统老师说,平时面试学生或者毕业答辩的时候他都会问这个问题,可见这个问题对于计算机专业的学生来说是如此 ...
- https://blog.csdn.net/doegoo/article/details/50749817
因为使用DiscuzX3.2进行系统的整合后,因为只是想在原J2EE的系统上增加论坛功能,而且J2EE中已经有一套用户的注册认证的体系,所以不需要在Discuz的系统中去注册以及登录功能,而是通过在J ...
- /etc/hosts和/etc/hostname区别
/etc/hosts主要是ip和域名的对应 /etc/hostname主要是本地主机域名(本地主机名修改过后需要重启服务器才能生效) 如果我想在另一台linux主机里面使用域名访问上面这台主机A,只需 ...
- 【转载】Win10系统桌面右键新建没有Word、Excel、PPT怎么恢复?
Win10系统桌面右键新建没有Word.Excel.PPT怎么恢复? 以下正文转载至: 网址:http://www.xitongzhijia.net/xtjc/20170307/93471.html ...
- 3.3 MathType自动公式编号和对齐
1.利用MathType录入公式并自动公式编号.自动对齐. 将光标置于需录入公式位置,点[MathType]>[(1)Insert Number]>下拉选择[1.a Format]. 如下 ...
- Linux之cp、rm、mv
cp.rm.mv 命令功能: 复制文件或目录 命令格式: cp [OPTION]... [-T] SOURCE DEST cp [OPTION]... SOURCE... DIRECTORY cp [ ...
- How to load custom styles at runtime (不会翻译,只有抄了 )
原文 :http://blogs.embarcadero.com/sarinadupont/2013/10/16/how-to-load-custom-styles-at-runtime/ How t ...
- 不常用的vi命令
vi u 撤回ctrl+r 撤回的撤回 全文替换%s/old/new/g 指定行区间替换12,15s/old/new/g c替换前确认12,15s/old/new/gc 用#代替分隔符,用户关键字有/ ...
- 饥饿的牛(dp一维最大覆盖)
问题 H: 饥饿的牛 时间限制: 1 Sec 内存限制: 128 MB提交: 12 解决: 12[提交][状态][讨论版][命题人:外部导入][Edit] [TestData] [同步数据] 题目 ...