P2077 红绿灯(解法2)

题目描述

在一个城市,有一条笔直的公路,在这条公路上有 NN 个十字路口,每个路口都设有一个红绿灯,已知相邻的两个路口距离为 A_iA**i 千米 (1\le i < N)(1≤i<N),每个路口的红灯时间为 R_iR**i,绿灯时间为 G_iG**i,没有黄灯,现在有一辆车从距离 11 号十字路口 MM 千米的位置出发,且此时所有路口的红绿灯刚好从红灯跳到绿灯,问这辆车通过每个路口的时间(不能闯红灯,这辆车的速度为 11 千米每分钟)。

输入格式

第一行两个正整数 NN 和 MM

第二行 N-1N−1 个正整数 A_iA**i

第三行 NN 个正整数 R_iR**i,为红灯时间(分钟)

第四行 NN 个正整数 G_iG**i,为绿灯时间(分钟)

输出格式

共 NN 行,每行一个正整数,为这辆车通过每个十字路口的最早时间。

输入输出样例

输入 #1复制

5 3
2 4 3 2
3 4 3 4 3
2 3 2 3 1

输出 #1复制

5
7
11
14
16

说明/提示

对于 50%50% 的数据 N\le 1000N≤1000;

对于 100%100% 的数据 N\le 10^5N≤105,M,A_i\le 10M,A**i≤10,R_i,G_i\le 5R**iG**i≤5。

#include<bits/stdc++.h>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
int main(){int total_time=0,waiting_time;  int n,m;cin>>n>>m;int a[n-1],r[n],g[n];//输入N—1个相邻路口距离a[0] = m;for(int i=1;i<n;i++){cin>>a[i];}for(int i=0;i<n;i++){cin>>r[i];}for(int i=0;i<n;i++){cin>>g[i];}for(int i=0;i<n;i++){total_time+=a[i]/1; //直接加上间隔距离所花时间 //判断是否红灯 if(total_time%(r[i]+g[i])>g[i]){//是红灯 waiting_time=r[i]+g[i]-(total_time%(r[i]+g[i])); //计算等待红灯的时间 total_time += waiting_time;//加上等红灯的时间 }cout<<total_time<<endl;}return 0;}

洛谷——P2077 红绿灯(解法2)相关推荐

  1. 洛谷——P2077 红绿灯

    P2077 红绿灯 题目描述 在一个城市,有一条笔直的公路,在这条公路上有 NN 个十字路口,每个路口都设有一个红绿灯,已知相邻的两个路口距离为 A_iA**i 千米 (1\le i < N)( ...

  2. 洛谷P1007——独木桥 解法 (C++)

    Hi 又见面了呀 今天来一道洛谷的题 独木桥 先上个题目传送门(点击蓝字即可观看) 注:该博客已在2020年6月24日更新,更新内容:修复了一些由于字体原因导致的错误 题目背景 战争已经进入到紧要时间 ...

  3. 洛谷P2678 Java解法

    题目出处点这里 思路: 形如求最小值的最大值以及求最大值的最小值都可以二分求解. 就像这道题,求最短的跳跃距离尽可能长(就是求最小值的最大值),注意到跳跃距离肯定在1至L之间,于是问题就变为在1~L之 ...

  4. 洛谷P2298 Java解法

    题目出处点这里 很明显又是广搜模板题 代码: package search;import java.awt.Point; import java.util.LinkedList; import jav ...

  5. 洛谷P2404 Java解法

    题目出处 思路:肯定打表啊! 用一个数组arr[]存储每次拆分的结果,满足条件就输出,不断再原来数组基础上进行搜索即可,不过要注意输出的数是从小到大的,因此我们可以用一个变量zz记录每次存进arr[] ...

  6. 洛谷P1618 Java解法

    题目出处:https://www.luogu.com.cn/problem/P1618 思路: 从结果入手 先在123-987中找到满足A:B:C的三个数 再判断三个数的各个数字是否有重复的 pack ...

  7. 关于洛谷p5705的解法c语言

    #include<stdio.h> int main() {     int b,c,d,e,q; float a;     scanf("%f",&a);   ...

  8. 二分答案——数列分段 Section II(洛谷 P1182)

    题目选自洛谷P1182 本题解法:二分答案+贪心 思路:首先,分析题目,求最大值的最小化,直接联想到二分,So我们直接二分答案,关键是要怎么去高效的check,我们考虑一个贪心的思路,能加的就加上,不 ...

  9. java 旅行家的预算_洛谷 P1016 旅行家的预算 Java解法

    洛谷 P1016 旅行家的预算 Java解法 洛谷 P1016 旅行家的预算 Java解法 package com.two; import java.util.Scanner; public clas ...

最新文章

  1. python web框架autoreload原理(以bottle为例)
  2. python培训出来的有公司要吗-python培训机构出来好就业吗
  3. 拥抱对手 微软崛起或靠“云计算”业务
  4. 八皇后问题判断此位置是否需合适
  5. 线性结构 —— 分块算法 —— 分块九讲
  6. adas硬件_ADAS系统功能安全设计/SOTIF需求和测试实例/软件安全架构/硬件安全设计......
  7. php判断同一天,PHP判断两个时间戳是否在同一周同一月等 - YangJunwei
  8. Selenium Automated test 02 - Open browser
  9. BZOJ P1059 [ZJOI2007]矩阵游戏——solution
  10. 【RGB检测】基于matlab GUI图像RGB检测【含Matlab源码 088期】
  11. vnc远程控制软件7款,7款非常好用的vnc远程控制软件
  12. 入行 AI,如何选个脚踏实地的岗位?
  13. cpuz测试分数天梯图_2019年CPU单核跑分天梯图V1.22版(190712)
  14. 深度解密Go语言之map
  15. 图片链接(a标签和img标签的使用)
  16. java文件读写之Channel策略
  17. Android去除烦人的默认闪退
  18. 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等)
  19. 实例019:完数 一个数如果恰好等于它的因子之和,这个数就称为“完数“。例如6=1+2+3.编程找出1000以内的所有完数。
  20. 并发编程-并发编程的挑战

热门文章

  1. webService调用模式比较
  2. Python基础-程序控制结构
  3. 熟悉相关电路,控制I/O口,且配置相关参数,LED,光敏,74LS164数码管
  4. 性能测试-了解硬件之CPU(一)
  5. 类HTML语法显示格式化文本
  6. socket和URLConnection
  7. 10个好用的Web日志安全分析工具
  8. Eclipse 中 去掉 行末端(尾部) 的 空格。(需要「AnyEdit」插件)
  9. 【Oracle】非RMAN恢复数据文件、控制文件
  10. 解决css中height:100%失效的问题