传送门:DayLight Saving Light

夏令时:

  夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。

摘自百度百科。

题意:

  规定每到每年三月的第二个星期日的2:00就把时间调为3:00,再到该年的2:00的时候把时间再调为1:00。所以题目的意思为每年的1月1日0:00到三月第二个星期日的2:00为“PST”(不包括这个2:00时刻),这个2:00-3:00为“Neither”,3:00这个时刻到该年11月第一个星期日的1:00时刻(不包括1:00时刻)为“PDT”,1:00时刻到年终为“Both”。具体如下:

  另一个难点在于如何确定给出的日期是不是这两个日期中的一个。这个是队友按着日历数出来的,办法笨点能出题啊就行。

  

  所以规律就出来了,当该年是平年的时候日期是由上一个减一得出来的,如果是闰年就是由上一年减二得出来的。但十一月份最小是1再减就是从7开始往下减了。观察发现三月份和十一月份的日子是成对出现的,所以求出了十一月份的来三月份的就出来了。

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+;
typedef long long ll;
struct Year
{
int ma;
int no;
} y[]; bool judge(int year)
{
if((year% == && year% != ) || year% == )
return true;
return false;
} int fun(int x)
{
if(x == )
return ;
else if(x == )
return ;
else if(x == )
return ;
else if(x == )
return ;
else if(x == )
return ;
else if(x == )
return ;
else if(x == )
return ;
} void init()
{
int n = ;
y[].ma = ,y[].no = ;
for(int i = ; i<=; i++)
{
if(judge(i))
{
y[i-].no = (n - + ) % ;
n = y[i-].no;
}
else
{
y[i-].no = (n - + ) % ;
n = y[i-].no;
}
if(n == )
y[i-].no = n = ;
y[i-].ma = fun(n);
}
return;
} int main()
{
init();
int T,cnt = ;
scanf("%d",&T);
while(T--)
{
int yy,m,dd,hh,mm,ss;
scanf("%d-%d-%d %d:%d:%d",&yy,&m,&dd,&hh,&mm,&ss);
printf("Case #%d: ",cnt++);
yy = yy-;
if(m == )
{
if(dd == y[yy].ma)
{
if(hh < )
printf("PST\n");
else if(hh == )
printf("Neither\n");
else
printf("PDT\n");
}
else if(dd>y[yy].ma)
printf("PDT\n");
else if(dd<y[yy].ma)
printf("PST\n"); }
else if(m>= && m<=)
printf("PDT\n");
else if(m==)
{
if(dd == y[yy].no)
{
if(hh<)
printf("PDT\n");
else if(hh==)
printf("Both\n");
else
printf("PST\n");
}
else if(dd>y[yy].no)
printf("PST\n");
else if(dd<y[yy].no)
printf("PDT\n");
}
else
printf("PST\n");
}
return ;
}
/*
样例输入:
4
2016-03-13 01:59:59
2016-03-13 02:00:00
2016-11-06 00:59:59
2016-11-06 01:00:00
样例输出:
Case #1: PST
Case #2: Neither
Case #3: PDT
Case #4: Both
*/

DayLight Saving Light(HDU6010)的更多相关文章

  1. HDU6010 Daylight Saving Time

    /* HDU6010 Daylight Saving Time http://acm.hdu.edu.cn/showproblem.php?pid=6010 模拟 题意:算当前时间是否是夏令时 */ ...

  2. hdu 6010 Daylight Saving Time 泰勒公式

    Daylight Saving Time Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  3. Daylight Saving Time

    [Daylight Saving Time] 夏时制,又称日光节约时制.日光節約時間(英语:Daylight saving time)或夏令时间(英语:Summer time),是一种为节约能源而人为 ...

  4. 夏令时 DST (Daylight Saving Time) java中的夏令时【转】

    1916年,德国首先实行夏令时,英国因为怕德国会从中得到更大的效益,因此紧跟着也采取了夏令时 1986年至1991年,中华人民共和国在全国范围实行了六年夏令时 サマータイム 夏時間(日本现在没有实行夏 ...

  5. HDU 6010 - Daylight Saving Time

    先算周几,再模拟 #include <bits/stdc++.h> using namespace std; int GetWeekDay(int y,int m,int d)//0为周一 ...

  6. Gym 101206L Daylight Saving Time 根据年月日计算星期

    题意: [3月的第二个周日02:00:00 , 3月的第二个周日03:00:00) 这个区间都不是PST或PDT,[11月的第一个周日01:00:00 , 11月的第一个周日02:00:00) 这个区 ...

  7. C语言的时间函数

    下面是C语言的获取本地时间和构造时间进行格式化时间显示输出的相关函数:This page is part of release 3.35 of the Linux man-pages project. ...

  8. Lua 5.1 参考手册

    Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes 云风 译 www.codingno ...

  9. 【Linux】多睡/少睡一小时!冬夏令时全解析

    多伦多2016年11月6日凌晨2点开始起时间调回一小时,时间到凌晨2点时自动跳回到1点,大家可以多睡一小时(或者多一小时写essay的时间)~ 多伦多2017年3月12日凌晨2点开始时间拨快一小时时间 ...

随机推荐

  1. 【C++&爬虫】C++实现网络爬虫&socket初级教程

    2019年了,发现以前的很多教程都不能用了. 我自己写的socket发给服务器总是返回301错误——资源永久转移.很多教程都是这样,困扰了我很久. 终于我发现了一篇能用的爬虫代码,参考MSDN以及众多 ...

  2. HttpClient-03Http状态管理

    最初,Http被设计成一个无状态的,面向请求/响应的协议,所以它不能在逻辑相关的http请求/响应中保持状态会话.由于越来越多的系统使用http协议,其中包括http从来没有想支持的系统,比如电子商务 ...

  3. HDU5768Lucky7

    Lucky7 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  4. 第十三周 Leetcode 363. Max Sum of Rectangle No Larger Than K(HARD)

    Leetcode363 思路: 一种naive的算法就是枚举每个矩形块, 时间复杂度为O((mn)^2), 可以做少许优化时间复杂度可以降低到O(mnnlogm), 其中m为行数, n为列数. 先求出 ...

  5. HDU2138 素数判定

    HDU2138 给定N个32位大于等于2的正整数 输出其中素数的个数 用Miller Rabin 素数判定法 效率很高 数学证明比较复杂,略过, 会使用这个接口即可. #include<iost ...

  6. 关于ListView的注意点

    解决ListView的一些常见问题: 1.listview在拖动的时候背景图片消失变成黑色背景,等到拖动完毕我们自己的背景图片才显示出来 解决:在XML中加入 android:scrollingCac ...

  7. 思维+multiset ZOJ Monthly, July 2015 - H Twelves Monkeys

    题目传送门 /* 题意:n个时刻点,m次时光穿梭,告诉的起点和终点,q次询问,每次询问t时刻t之前有多少时刻点是可以通过两种不同的路径到达 思维:对于当前p时间,从现在到未来穿越到过去的是有效的值,排 ...

  8. JavaScript(十四)经典的Ajax

    (function(){ //唯一向外暴露一个顶层变量 var myajax = window.myajax = {}; //作者.版本号信息 myajax.author = "maxwel ...

  9. 百度人脸识别AI实践.doc

    0, 前言 百度开放了很多AI能力,其中人脸识别就是其中之一. 本文对百度人脸识别AI进行实践检验,看看其使用效果如何. 鉴于是最为基础的实践,基本都是在其接口范例代码修改而来. 百度人脸识别AI网站 ...

  10. Probabilistic locking in SQLite

    In SQLite, a reader/writer lock mechanism is required to control the multi-process concurrent access ...