1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. int r,y,g;
  8.  
  9. void change(long long int sum,int &k,int &t)//最开始显示为t秒,sum秒后为什么状态,此时为k灯
  10. {
  11. sum%=(r+y+g);///不加此句会超时
  12. if(k==0)
  13. return;
  14. if(sum-t<0)
  15. {
  16. t-=sum;
  17. return;
  18. }
  19. else
  20. {
  21. sum-=t;
  22. if(k==1)
  23. k=3;
  24. else if(k==3)
  25. k=2;
  26. else if(k==2)
  27. k=1;
  28. }
  29. while(sum>=0)//1--》3--》2
  30. {
  31. switch (k)
  32. {
  33. case 1:
  34. if(sum-r<0)
  35. {
  36. t=r-sum;
  37. return;
  38. }
  39. else
  40. {
  41. if(k==1)
  42. k=3;
  43. else if(k==3)
  44. k=2;
  45. else if(k==2)
  46. k=1;
  47. sum-=r;
  48. }
  49. break;
  50. case 2:
  51. if(sum-y<0)
  52. {
  53. t=y-sum;
  54. return;
  55. }
  56. else
  57. {
  58. if(k==1)
  59. k=3;
  60. else if(k==3)
  61. k=2;
  62. else if(k==2)
  63. k=1;
  64. sum-=y;
  65. }
  66. break;
  67. case 3:
  68. if(sum-g<0)
  69. {
  70. t=g-sum;
  71. return;
  72. }
  73. else
  74. {
  75. if(k==1)
  76. k=3;
  77. else if(k==3)
  78. k=2;
  79. else if(k==2)
  80. k=1;
  81. sum-=g;
  82. }
  83. break;
  84. }
  85. }
  86. }
  87.  
  88. int main()
  89. {
  90. cin>>r>>y>>g;
  91. int n;
  92. cin>>n;
  93. long long int sum=0;
  94. while(n--)
  95. {
  96. int k,t;
  97. cin>>k>>t;
  98. change(sum,k,t);
  99. switch (k)
  100. {
  101. case 0:
  102. sum+=t;
  103. break;
  104. case 1:
  105. sum+=t;
  106. break;
  107. case 2:
  108. sum+=(t+r);
  109. break;
  110. case 3:
  111. break;
  112. }
  113. }
  114. cout<<sum<<endl;
  115. }

CCF 201812-2 小明放学的更多相关文章

  1. CCF201812-2小明放学

    题目背景 汉东省政法大学附属中学所在的光明区最近实施了名为"智慧光明"的智慧城市项目.具体到交通领域,通过"智慧光明"终端,可以看到光明区所有红绿灯此时此刻的状 ...

  2. CCF CSP 201812-1 小明上学

    题目链接:http://118.190.20.162/view.page?gpid=T80 问题描述 试题编号: 201812-1 试题名称: 小明上学 时间限制: 1.0s 内存限制: 512.0M ...

  3. 201812-2 小明放学 Java

    思路: 红绿灯每种灯亮划分区间,在[0,r]区间内红灯亮,在(r,g+r]区间内绿灯亮,在(r+g,r+g+y]区间内黄灯亮,在划分好区间后只需要判断当小明到达红绿灯时是哪个灯在亮,就可以判断出通过红 ...

  4. CSP 201812-2 小明放学

    问题描述: 解题思路: 由于数据的量较大,需要使用long long来存储结果,否则会爆掉结果只能得到一部分的分 可以类比时钟,将红绿灯的变换当成时钟的运转,这样用模运算来断定红绿灯在到达时处于什么颜 ...

  5. CCF2018 12 2题,小明终于到家了

    最近在愁着备考,拿CCF刷题,就遇到这个难题,最后搜索了一下大佬们的方法,终于解决, 问题描述 一次放学的时候,小明已经规划好了自己回家的路线,并且能够预测经过各个路段的时间.同时,小明通过学校里安装 ...

  6. 小明种苹果(续)第十七次CCF认证

    小明种苹果(续)第十七次CCF认证 题目 原题链接 ](http://118.190.20.162/view.page?gpid=T93) 很高心,在现在CCF CSP可以下载自己当时的答卷了,也就是 ...

  7. 201812-1 小明上学 Java

    思路: 上学这个题和放学有区别,上学是小明每到一个路口的情况,是实时更新的.不是只有出发时间,那样就比较复杂了. 这个题需要注意:黄灯之后要等红灯,想一下交通规则. import java.util. ...

  8. 小明的密码-初级DP解法

    #include #include #include using namespace std; int visited[5][20][9009];// 访问情况 int dp[5][20][9009] ...

  9. 小明系列问题――小明序列(LIS)

    小明系列问题――小明序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  10. ACM 擅长排列的小明

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算.比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想 ...

随机推荐

  1. Python中的函数定义中的斜杠/和星号*

    Python中的函数定义中的斜杠/和星号* 示例 看一段代码  def say_hello(name,age=18):     print(f'你好!我是{name},今年我{age}啦.') say ...

  2. mvn引用本地包

    <dependency> <groupId>jna</groupId> <artifactId>jna</artifactId> <s ...

  3. 【Raspberry Pi / 树莓派】小小工控机担起大大责任

    CM4 Nano是一款基于Raspberry Pi / 树莓派 Compute Module 4(简称CM4),由EDATEC面向工业应用设计的嵌入式计算机, 充分利用CM4在结构上灵活性解决CPU, ...

  4. [学习笔记]SQL server完全备份指南

    方式一,使用SQL Server Management Studio 准备工作 连接目标数据库服务器 在目标数据库上右键->属性,将数据库的恢复模式设置为"简单",兼容级别设 ...

  5. xampp修改mysql数据库密码(测试成功)

    转载: http://www.360doc.com/content/17/0608/14/8797027_661063783.shtml ------------------------------- ...

  6. Iceberg 数据治理及查询加速实践

    数据治理 Flink 实时写入 Iceberg 带来的问题 在实时数据源源不断经过 Flink 写入的 Iceberg 的过程中,Flink 通过定时的 Checkpoint 提交 snapshot ...

  7. 基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素

    基线MRI与CRP是依那西普对nr-axSpA的疗效预测因素 EULAR2015; PresentID: SAT0258 BASELINE MRI/CRP AS PREDICTORS OF RESPO ...

  8. 3D数字孪生场景编辑器介绍

    1.背景 数字孪生的建设流程涉及建模.美术.程序.仿真等多种人才的协同作业,人力要求高,实施成本高,建设周期长.如何让小型团队甚至一个人就可以完成数字孪生的开发,是数字孪生工具链要解决的重要问题.目前 ...

  9. Shapefile导入Oracle

    1. 概述 Shapefile是常用的空间数据文件格式,Oracle数据库是常用的关系型数据库 Oracle数据库包含空间数据库,可以在Oracle中进行空间数据的存储,更详细的信息可参考: 空间数据 ...

  10. 基于C++的OpenGL 01 之Hello Triangle

    1. 引言 本文基于C++语言,描述OpenGL的绘制流程,这里描述的是OpenGL的核心模式(Core-profile) 本文基于Ubuntu 20.04.3 LTS系统,使用CMake构建程序,O ...