1199: 英雄无敌3(2)

2024-03-19 17:48
文章标签 1199 英雄无敌

本文主要是介绍1199: 英雄无敌3(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1199: 英雄无敌3(2)
Time Limit: 1 Sec Memory Limit: 128 MB
[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

HINT

Source

AC代码~:

#include <stdio.h>
long long a[2015]= {0};
int b[13]= {0,31,0,31,30,31,30,31,31,30,31,30,31};//月份天数,2月暂时初始为0
//判断是否为闰年
bool leapyear(int y)
{if((y%4==0&&y%100!=0)||y%400==0)return true;return false;
}
int main()
{a[2] =365;for(int i = 3; i <= 2013; i++)//a[i]存前i年前(不包括i)有多少天{if(leapyear(i-1))a[i] += a[i-1]+366;elsea[i] += a[i-1]+365;}int y,m,d,t;scanf("%d",&t);while(t--){scanf("%d%d%d",&y,&m,&d);if(leapyear(y))b[2] = 29;elseb[2] = 28;if(d > b[m]||m==0||d==0||m>12)//这里要想全面printf("-1\n");else{long long sum = a[y];for(int i = 1; i < m; i++)sum += b[i];sum += d;printf("%d\n",sum%7);}}return 0;
}

这篇关于1199: 英雄无敌3(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826785

相关文章

bzoj 1199 二分暴力

这道题的数据范围是25W... 直接暴力。。。 将所有点按照x排序之后。遍历所有的矩形和圆,用upper_bound和lower_bound寻找出符合图形x坐标的所有点,(位于区间[s,t]),然后暴力枚举刚才寻找的点判断是否在当前形状内。。 好黄好暴力。upper_bound和lower_bound的新用法~~ #include <algorithm>#include <algor

【NOIP2010】洛谷1199 三国游戏

题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做《三国》的游戏。 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战。游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之间有一个“默契值”,表示若此两位武将作为一对组合作战时,该组合的威力有多大。游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的