传送门: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. 在linux上处理base64加密和解密

    http://snailwarrior.blog.51cto.com/680306/142472/ 2.从标准输入读取文件内容,base64编码并打印到标准输出 [root@localhost tes ...

  2. [IOI2005]Riv 河流

    https://www.zybuluo.com/ysner/note/1300088 题面 有一棵\(n\)个点的树,现在在上面放\(k\)个标记,使得每个点的权值乘上自己到最近的标记祖先的距离的和最 ...

  3. javascript DOM基本操作

    javascript DOM基本操作 1.DOM(Document Object Model 文档对象模型) 2.节点: 文档节点:document 元素节点:html.head.body.title ...

  4. 【转载】Cookie/Session机制详解

    [本文转自]http://blog.csdn.net/fangaoxin/article/details/6952954/ 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话. ...

  5. Java 中extends与implements使用方法 (转载)

    转自:http://blog.csdn.net/chen_chun_guang/article/details/6323201 初学Java语言, 代码中的extends和implements让我感到 ...

  6. Akka源码分析-Akka-Streams-Materializer(1)

    本博客逐步分析Akka Streams的源码,当然必须循序渐进,且估计会分很多篇,毕竟Akka Streams还是比较复杂的. implicit val system = ActorSystem(&q ...

  7. C#和C++的区别(一)

    C#特性 1.指针可以有++.--运算,引用不可以运算: 2.类或结构的默认访问类型是internal 类的所有成员,默认是private 3.属性:用于定义一些命名特性,通过它来读取和写入相关的特性 ...

  8. 莫队算法 BOJ 2038 [2009国家集训队]小Z的袜子(hose)

    题目传送门 /* 莫队算法:求出[l, r]上取出两只相同袜子的个数. 莫队算法是离线处理一类区间不修改查询类问题的算法.如果你知道了[L,R]的答案,可以在O(1)的时间下得到 [L,R-1]和[L ...

  9. c语言数据读入---sscanf、fscanf

    #include <iostream> #include <cstdio> #include <cstring> #include <stdlib.h> ...

  10. Generating RSA keys in PKCS#1 format in Java--转

    原文地址:https://stackoverflow.com/questions/7611383/generating-rsa-keys-in-pkcs1-format-in-java When I ...