Problem B: 英雄无敌3(2)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 295  Solved: 52
[Submit][Status][Web Board]

Description

英雄无敌3中的兽人觉得人类的星期制度很好,要模仿这个制度,但他们大多都很愚蠢,他们搞不明白人类的星期制度。虽然他们出了很多题目(给出日期,输出星期几),但不知道答案,作为兽人的人类朋友,你可以帮助他们吗?(为了表示方便,0代表星期天,1代表星期一,2代表星期二,3代表星期三,4代表星期四,5代表星期五,6代表星期六)

Input

第一行输入一个数t,代表题目数。

每个题目有3个正整数分别为y(0<y<=2013), m(0=<m<=20), d(0<=d<=40)分别代表年,月,日。

Output

对于每组案例,输出一个整数,代表星期几(当然由于兽人很愚蠢,他们给出的日期有可能是不存在的,对于这种情况,请输出-1)

Sample Input

1
2013 4 25

Sample Output

4
 
【分析】:已知年月日求星期几有专门的公式,要注意的点是闰平年的二月天数不同,月份可以用常量数组表示。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 1000000000;
const int maxn = 100;
int T,n,m;
int year,mouth,day; int solve(int yy,int mm,int dd)
{
int m[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
if(mm==0||mm>12||dd==0||dd>31)
{
return -1;
}
if(!((yy%4==0&&yy%100!=0)||yy%400==0))
m[2]=28;
else
m[2]=29;
if(dd>m[mouth])
{
return -1;
}
if(mm<3)//在普适公式/基姆拉尔公式中有个与其他公式不同的地方:
  //把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
{
yy--;
mm+=12;
}
int c=yy/100;
int y=yy%100;
return (((c/4-2*c+y+y/4+13*(mm+1)/5+dd-1)%7+7)%7);
} int main()
{
scanf("%d",&T);
int ans;
while(T--)
{
scanf("%d %d %d",&year,&mouth,&day);
if(year<=0||mouth<=0||day<=0||mouth>12||day>31)
printf("-1\n");
else
printf("%d\n",solve(year,mouth,day));
}
return 0;
}

  

 

Problem B: 英雄无敌3(2)【模拟,日期转换】的更多相关文章

  1. Problem A: 英雄无敌3(1)【dp/待补】

      Problem A: 英雄无敌3(1) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 86  Solved: 16[Submit][Status][ ...

  2. 黑科技项目:英雄无敌III Mod <<Fallen Angel>>介绍

    英雄无敌三简介(Heroes of Might and Magic III) 英3是1999年由New World Computing在Windows平台上开发的回合制策略魔幻游戏,其出版商是3DO. ...

  3. 英雄无敌HoMM3-死亡阴影SOD-神之苏醒WOG-封神NABI-MOD等相关文件

    英雄无敌HoMM3:死亡阴影SOD 英雄无敌3之死亡阴影(Heroes of Might and Magic III: Shadow of Death,简记为HoMM III: SOD)发行于1999 ...

  4. 让vcmi支持英雄无敌3中文版

    Table of Contents 1 Hack 日志 2 Changes 3 Install by compiling 4 reply of Ivan 1 Hack 日志 8月22日开始动手修改改v ...

  5. 英雄无敌3开源引擎vcmi的编译安装

    TAGS: Heroes3, vcmi, opensourceDATE: 2013-08-23 vcmi是什么? vcmi 是经典的 SLG 英雄无敌3 的开源游戏引擎.原来的英雄无敌3只能在Wind ...

  6. Struts2中Date日期转换的问题

      今天跑程序的时候莫名其妙的出现了下面的一个异常: java.lang.NoSuchMethodException:com.ca.agent.model.mybatis.ApprovalInforC ...

  7. springMvc的日期转换之二

    方式一:使用@InitBinder注解实现日期转换 前台页面: 后台打印: 方式二:处理多种日期格式类型之间的转换 采用方式:由于binder.registerCustomEditor(Date.cl ...

  8. Js 日期转换函数(UTC时间转换及日期想加减)

    IOS上Js日期转换中new Date("yyyy-mm-dd")不能正常工作,必须使用new Date("yyyy/MM/dd"); 日期相加减: Date. ...

  9. json日期转换

    //调用 ChangeDateFormat(CreatTime) //json日期转换 function ChangeDateFormat(jsondate) { jsondate = jsondat ...

随机推荐

  1. 【题解】NOI2017游戏

    2-SAT.洛谷P3845 一开始以为——怎么有3个呢?后来发现因为每个地图都有一种车是不能用的,所以就等于每一个地图都有两个适应的车啦. 那么对于x类型的地图呢——只有8个,直接2^8暴力枚举每一种 ...

  2. [Leetcode] Path Sum II路径和

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  3. 用伪类实现一个div的宽度和高度是固定百分比

    遇到一个题目:一个div宽度是固定百分比的情况下,如何设置高度是宽度的80% 看到题目的第一反应是用js控制,获取到div的宽度之后再用宽度的80%来设置div的高度,但是如何在不用js的情况下,只用 ...

  4. 12.25模拟赛T1

    可以区间dp,但是复杂度太高. 所以应该是贪心,怎么贪心呢? 这种题目,最好还是手玩找一些规律. 可以发现,由于保证可以m次填完,所以颜色之间没有相互包含关系. 比较像分治的模型. 所以考虑拿到一个区 ...

  5. 【BZOJ 3643】Phi的反函数 数搜索

    这道题是典型的数搜索,讲究把数一层一层化小,而且还有最重要的大质数剪枝. #include <cstdio> #include <cmath> typedef long lon ...

  6. There is an overlap in the region chain修复

    ERROR: (region day_hotstatic,860010-2355010000_20140417_12_entry_00000000321,1400060700465.fda3b0aca ...

  7. 在Debian9安装node和npm

    这学期又快结束了,坐在每天面对的电脑面,本着整理资料.更换心情的目的,我重装了一下自己的debian.下面就将自己安装node的过程进行记录与分享. node的官网:https://nodejs.or ...

  8. 代码管理工具 (含git、npm、gulp)

    1 Git 分布式代码管理工具(基于Linux,可在本地进行提交)代码同时储存在本地和服务器中 ① Git基本操作命令 (1)初始化,创建初始化仓库 git init ------- 文件初始化,初始 ...

  9. HDU2157 How many ways??---(邻接矩阵,图论,矩阵快速幂)

    http://acm.hdu.edu.cn/showproblem.php?pid=2157 How many ways?? Time Limit: 2000/1000 MS (Java/Others ...

  10. jzoj2701 【GDKOI2012模拟02.01】矩阵

    传送门:https://jzoj.net/senior/#main/show/2701 [题目大意] 给出矩阵A,求矩阵B,使得