USACO-Friday the Thirteenth(黑色星期五)-Section1.2<3>
【英文原题】
Friday the Thirteenth
Is Friday the 13th really an unusual event?
That is, does the 13th of the month land on a Friday less often than
on any other day of the week? To answer this question, write a program
that will compute the frequency that the 13th of each month lands on
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, and Saturday over
a given period of N years. The time period to test will be from January
1, 1900 to December 31, 1900+N-1 for a given number of years, N. N is
positive and will not exceed 400.
Note that the start year is NINETEEN HUNDRED, not 1990.
There are few facts you need to know before you can solve this problem:
- January 1, 1900 was on a Monday.
- Thirty days has September, April, June, and November, all the rest
have 31 except for February which has 28 except in leap years when it
has 29. - Every year evenly divisible by 4 is a leap year (1992 = 4*498 so
1992 will be a leap year, but the year 1990 is not a leap year) - The rule above does not hold for century years. Century years
divisible by 400 are leap years, all other are not. Thus, the century
years 1700, 1800, 1900 and 2100 are not leap years, but 2000 is a leap
year.
Do not use any built-in date functions in your computer language.
Don't just precompute the answers, either, please.
PROGRAM NAME: friday
INPUT FORMAT
One line with the integer N.
SAMPLE INPUT (file friday.in)
20
OUTPUT FORMAT
Seven space separated integers on one line. These integers represent the number of times the 13th falls on Saturday, Sunday, Monday, Tuesday, ..., Friday.
SAMPLE OUTPUT (file friday.out)
36 33 34 33 35 35 34
【中文翻译】
题目描述
13号又是一个星期五。13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出N年的一个周期,要求计算1900年1月1日至1900+N-1年12月31日中十三号落在周一到周日的次数,N为正整数且不大于400.
这里有一些你要知道的:
1、1900年1月1日是星期一.
2、4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.
3、年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年).
4、以上规则不适合于世纪年。可以被400整除的世纪年为闰年,否则为平年。所以,1700,1800,1900和2100年是平年,而2000年是闰年.
请不要调用现成的函数
请不要预先算好数据(就是叫不准打表)!
输入输出格式
输入格式:
一个正整数n.
输出格式:
**输出请从周六开始
输入输出样例
20
36 33 34 33 35 35 34
#include<stdio.h>
bool isLeapYear(int year)//判断闰年
{
if(year == || year == || year == || year == || year == || year == || year == ){
if(year % == )
{
return true;
}
}
else if(year % == )
{
return true;//是闰年
}
return false;//不是闰年
}
int main(){
int n;
scanf("%d",&n);
int ans[] = {};
int day = ;
for(int i = ;i < + n;i++)
{
if(isLeapYear(i) == false)
{
for(int j = ;j < ;j++)
{//平年1月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年2月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年3月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年4月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年5月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年6月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年7月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年8月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年9月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年10月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年11月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//平年12月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
}
else{
for(int j = ;j < ;j++){//闰年1月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年2月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年3月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年4月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年5月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年6月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年7月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年8月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年9月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年10月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年11月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
for(int j = ;j < ;j++){//闰年12月
if(j == ){
if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}else if(day == ){
ans[day - ]++;
}
}
day++;
if(day > ){
day = ;
}
}
}
}
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("%d ",ans[]);
printf("\n");
return ;
}
USACO-Friday the Thirteenth(黑色星期五)-Section1.2<3>的更多相关文章
- Friday the Thirteenth 黑色星期五 USACO 模拟 超级简单做法
1003: 1.1.3 Friday the Thirteenth 黑色星期五 时间限制: 1 Sec 内存限制: 128 MB提交: 8 解决: 8[提交] [状态] [讨论版] [命题人:外部 ...
- USACO 1.1.3 Friday the Thirteenth 黑色星期五
Description 13号又是一个星期5.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至 ...
- JZOJ.1002【USACO题库】1.1.3 Friday the Thirteenth黑色星期五
每日一博第一天! 保持你的决心 题目描述 13号又是星期五是一个不寻常的日子吗? 13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13 日落在星期一,星期二......星期日的 ...
- USACO . Friday the Thirteenth
Friday the Thirteenth Is Friday the 13th really an unusual event? That is, does the 13th of the mont ...
- USACO Section 1.1-3 Friday the Thirteenth
Friday the Thirteenth 黑色星期五 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数. 给出N年的一个 ...
- USACO/friday
Friday the Thirteenth 黑色星期五 描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的 ...
- USACO Section1.1 Friday the Thirteenth 解题报告
friday解题报告 —— icedream61 博客园(转载请注明出处) -------------------------------------------------------------- ...
- USACO Training Section 1.1黑色星期五Friday the Thirteenth
题目描述 13号又是一个星期五.13号在星期五比在其他日子少吗?为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数.给出N年的一个周期,要求计算1900年1月1日至1900+N- ...
- USACO Section1.2
section1.1主要包括四道题和两个编程知识介绍.下面将对这6个部分内容进行学习. Your Ride Is Here 这道题没什么难度,读懂题目意思就行:把两个字符串按照题目要求转换成数字,然后 ...
随机推荐
- ADO.NET概述
xml这类文件它是.net变成环境中优先使用的数据访问借口. ADO.NET传输的数据都是XML格式的 ADO.NET是一组用于和数据源惊醒交互的面向对象类库 数据源:通常是各种数据库,但文本.exc ...
- IOS 判断当前UIViewController 是否正在显示
我通常的做法是根据视图控制器的生命周期来判断,其是否是正在使用的状态. 举例 设一个实例布尔变量isVisible 在 -ViewWillAppear 里面 isVisible = YES ; 在 ...
- VC2010编译时提示:转换到 COFF 期间失败: 文件无效或损坏
有时候新安装好VS2010后编译时就提示上述错误,罗列一下从网上查找到的几种解决方案: 方案1: 点击“项目”-->“属性”--> “清单工具”, 然后选择"输入和输出’--&g ...
- 【二】MongoDB入门
下面是mongodb的一些基本概念: 文档是MongoDB中数据的基本单元,类似关系数据库中的行. 集合,是存储文档的容器,类似关系数据库中的表. MongoDB的单个实例容纳多个数据库,每个数据库都 ...
- Linux电源管理(2)-Generic PM基本概念和软件架构【转】
本文转载自:http://www.wowotech.net/pm_subsystem/generic_pm_architecture.html 1. 前言 这里的Generic PM,是蜗蜗自己起的名 ...
- svn及git使用笔记
这周发生好几件大事: 谷歌发布SHA-1安全加密碰撞实例 Cloudflare 泄露网络会话中的加密数据 linux内核漏洞 CVE-2017-6074 加密在网络中越来越受关注,目前github的提 ...
- Idea 添加完项目以后自动生成的web.xml报错 'org.springframework.web.servlet.DispatcherServlet' is not assignable to 'javax.servlet.Servlet
解决方法:Project Structure - Modules - 你的项目 - Dependencies 添加Tomcat library
- 仿联想商城laravel实战---2、后端页面搭建(验证码如何在页面中使用)
仿联想商城laravel实战---2.后端页面搭建(验证码如何在页面中使用) 一.总结 一句话总结: 放在img里面,img的src就是生产验证码的控制器路径: img src="/admi ...
- shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性
shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...
- Cuckoo hash算法分析——其根本思想和bloom filter一致 增加hash函数来解决碰撞 节省了空间但代价是查找次数增加
基本思想: cuckoo hash是一种解决hash冲突的方法,其目的是使用简单的hash 函数来提高hash table的利用率,同时保证O(1)的查询时间 基本思想是使用2个hash函数来处理碰撞 ...