日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hihocoder1477 闰秒

發(fā)布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hihocoder1477 闰秒 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

題目:

閏秒

時間限制:10000ms 單點時限:1000ms 內(nèi)存限制:256MB

描述

計算機(jī)系統(tǒng)中使用的UTC時間基于原子鐘,這種計時方式同“地球自轉(zhuǎn)一周是24小時”的計時方式有微小的偏差。為了彌補(bǔ)這種偏差,我們偶爾需要增加一個“閏秒”。 ?

最近的一次閏秒增加發(fā)生在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之間。保證第一個時間不晚于第二個時間。

輸出

兩個時間間隔多少秒。

樣例輸入
2016-12-31 23:59:59 2017-01-01 00:00:00
樣例輸出
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-8; 9 const double pi=acos(-1.0); 10 const int K=1e6+7; 11 const int mod=1e9+7; 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[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 23 void init(void) 24 { 25 st.read(),se.read(); 26 six.PB(1972),six.PB(1981),six.PB(1982),six.PB(1983); 27 six.PB(1985),six.PB(1992),six.PB(1993),six.PB(1994); 28 six.PB(1997),six.PB(2012),six.PB(2015); 29 dece.PB(1972),dece.PB(1973),dece.PB(1974),dece.PB(1975); 30 dece.PB(1976),dece.PB(1977),dece.PB(1978),dece.PB(1979); 31 dece.PB(1987),dece.PB(1989),dece.PB(1990),dece.PB(1995); 32 dece.PB(1998),dece.PB(2005),dece.PB(2008),dece.PB(2016); 33 } 34 bool check(int x) 35 { 36 return (x%4==0&&x%100!=0)||x%400==0; 37 } 38 int cal(Time &x) 39 { 40 int ans=0; 41 for(int i=1;i<x.m;i++) 42 ans+=day[i]*24*60*60; 43 if(check(x.y)&&2<x.m) ans+=24*60*60; 44 ans+=(x.d-1)*24*60*60; 45 ans+=x.h*60*60; 46 ans+=x.mi*60; 47 ans+=x.s; 48 if(six.find(x.y)!=six.end()&&6<x.m)ans++; 49 return ans; 50 } 51 int main(void) 52 { 53 int ta,tb,ans=0; 54 ta=365*24*60*60; 55 tb=366*24*60*60; 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 0; 68 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/weeping/p/6541405.html

總結(jié)

以上是生活随笔為你收集整理的hihocoder1477 闰秒的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。