地址:http://hihocoder.com/problemset/problem/1477

题目:

闰秒

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

计算机系统中使用的UTC时间基于原子钟,这种计时方式同“地球自转一周是24小时”的计时方式有微小的偏差。为了弥补这种偏差,我们偶尔需要增加一个“闰秒”。

最近的一次闰秒增加发生在UTC时间2016年的最后一天。我们在2016年12月31日23时59分59秒和2017年1月1日0时0分0秒之间增加了这样一秒:2016年12月31日23时59分60秒,记作2016-12-31 23:59:60。

目前一共增加了27次闰秒,具体添加的时间见下表:

给出两个时间,请你判断在考虑闰秒的情况下,这两个时间间隔多少秒。

输入

两个时间各占一行,格式是yyyy-MM-dd HH:mm:ss,范围在1970-01-01 00:00:00至2017-03-12 23:59:59之间。保证第一个时间不晚于第二个时间。

输出

两个时间间隔多少秒。

样例输入
  1. 2016-12-31 23:59:59
  2. 2017-01-01 00:00:00
样例输出
  1. 2
    思路:没啥好说的,大模拟!见代码吧!
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define PB insert
  6. typedef long long LL;
  7. typedef pair<int,int> PII;
  8. const double eps=1e-;
  9. const double pi=acos(-1.0);
  10. const int K=1e6+;
  11. const int mod=1e9+;
  12.  
  13. struct Time
  14. {
  15. int y,m,d,h,mi,s;
  16. void read(void)
  17. {
  18. scanf("%d-%d-%d %d:%d:%d",&y,&m,&d,&h,&mi,&s);
  19. }
  20. }st,se;
  21. set<int>six,dece;
  22. int day[]={,,,,,,,,,,,,};
  23. void init(void)
  24. {
  25. st.read(),se.read();
  26. six.PB(),six.PB(),six.PB(),six.PB();
  27. six.PB(),six.PB(),six.PB(),six.PB();
  28. six.PB(),six.PB(),six.PB();
  29. dece.PB(),dece.PB(),dece.PB(),dece.PB();
  30. dece.PB(),dece.PB(),dece.PB(),dece.PB();
  31. dece.PB(),dece.PB(),dece.PB(),dece.PB();
  32. dece.PB(),dece.PB(),dece.PB(),dece.PB();
  33. }
  34. bool check(int x)
  35. {
  36. return (x%==&&x%!=)||x%==;
  37. }
  38. int cal(Time &x)
  39. {
  40. int ans=;
  41. for(int i=;i<x.m;i++)
  42. ans+=day[i]***;
  43. if(check(x.y)&&<x.m) ans+=**;
  44. ans+=(x.d-)***;
  45. ans+=x.h**;
  46. ans+=x.mi*;
  47. ans+=x.s;
  48. if(six.find(x.y)!=six.end()&&<x.m)ans++;
  49. return ans;
  50. }
  51. int main(void)
  52. {
  53. int ta,tb,ans=;
  54. ta=***;
  55. tb=***;
  56. init();
  57. for(int i=st.y;i<se.y;i++)
  58. {
  59. if(check(i)) ans+=tb;
  60. else ans+=ta;
  61. if(six.find(i)!=six.end()) ans++;
  62. if(dece.find(i)!=dece.end()) ans++;
  63. }
  64. ans-=cal(st);
  65. ans+=cal(se);
  66. cout<<ans<<endl;
  67. return ;
  68. }

hihocoder1477 闰秒的更多相关文章

  1. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  2. 时间,闰秒,及NTP

    1.时间 格林尼治时间 GMT,以地球自转为准的时间,也叫世界时UT,但是由于自转速度会变化,所以后来不被作为标准. 世界协调时UTC,以原子钟为准,现在时间校准的标准就是原子钟. 2.闰秒 是指地球 ...

  3. linux处理闰秒

    闰秒的介绍可以参考维基百科 https://zh.wikipedia.org/wiki/闰秒 linux处理闰秒 Linux使用UTC时钟,并通过NTP (Network time protocol) ...

  4. 应对linux下的闰秒

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6339470.html  转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点, ...

  5. 【hihocoder 1477】闰秒

    [题目链接]:http://hihocoder.com/problemset/problem/1477 [题意] 中文题 [题解] 首先,一年一年地加,把开始的年份和结束的年份之间的年根据是否为闰年; ...

  6. 【hihocoder编程练习赛9】闰秒

    题目链接 #include<stdio.h> #include<string.h> #include<algorithm> #include<math.h&g ...

  7. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  8. Java工程师成神之路

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java! 一.基础篇 1.1 JVM 1.1.1. J ...

  9. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

随机推荐

  1. Linux kernel parameter command line设置

    现在CPU2核以上比较普遍了,平时用linux上上网可能用不着双核甚至4核,大部分发行版内核都启用了CPU_HOTPLUG,到/sys/devices/system/cpu下可以看到文件夹cpu0.c ...

  2. linux上限制用户进程数、cpu占用率、内存使用率

    限制进程CPU占用率的问题,给出了一个shell脚本代码如下: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > ...

  3. 工作中php处理HTTP请求的缺陷总结

    之前遇到过php在处理一部分业务的时候总是感觉有短板,有些东西总是不能随人心意.比如执行时间问题,一个进程需要读取多条数据放入数组循环执行处理流程,就会很慢,容易超时,这个超时问题 可以用php设置s ...

  4. handlebars Helper用法

    handlebars  Helper用法:  http://www.cnblogs.com/iyangyuan/archive/2013/12/12/3471357.html 逻辑运算符在handle ...

  5. LAMP集群项目四 安装apache、php及其插件

    rpm -qa httpd* 查看是否有apache rpm -e httpd-2.2.22.2  卸载该文件,如果不让卸载,则加参数:--nodeps 不做软件中的依赖检查 ./configure ...

  6. vue里监听安卓的物理返回键

    Hybrid App中,原生内嵌H5单页,由于安卓是有物理返回键的,按安卓物理返回键的时候会返回到上一个路由. 实际中需求是:当有弹层的时候,按物理返回键是关闭弹层,是页面的时候才执行返回上一个路由, ...

  7. Java基础之Calendar类、JNDI之XML

     一.Calendar类 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现.在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要 ...

  8. 遇到的问题mongodb

    1.MongoNetworkError:failed to connect to server? 数据库没有启动,启动mongo数据库就好 2.有些东西真的是要做好记录的,单纯为了自己日后可以查阅比较 ...

  9. Exchange NLB 单播和多播模式比较

    一般来说,在NLB的创建时,单网卡多播,双网卡单播. 双网卡单播时,因为主机之间不能互相通信,将设置内网通讯的网卡,也就是群集设置中的心跳. NLB模式 描述 优点 缺点 单播 网卡MAC会被NLB专 ...

  10. JS实现关闭当前子窗口,刷新父窗口及调用父窗口的方法

    一.js实现关闭当前子窗口,刷新父窗口 JS代码如下: <script> function refreshParent() {  window.opener.location.href = ...