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 这道题没什么难度,读懂题目意思就行:把两个字符串按照题目要求转换成数字,然后 ...
随机推荐
- ubuntu切换到root
sudo+命令,输入当前用户密码后以root权限执行命令,有时间限制且仅限当前命令. sudo -i,输入当前用户密码后以root权限登录shell,无时间限制.使用exit或logout退出. su ...
- rails数据验证
@user1 = :name => "zhou" 与 @user2 = :name=> "ZHOU" 在为保存之前都有可能通过第一关validate ...
- codevs1217 借教室
借教室(classroom.cpp/c/pas)[问题描述]在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室 ...
- CV2图像操作
一.读入图像使用函数cv2.imread(filepath,flags)读入一副图片filepath:要读入图片的完整路径flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一 ...
- matlat之KDTreeSearcher()函数
Create Kd-tree nearest neighbor searcher(创建kd-树最近邻搜索器). Description KDTreeSearcher model objects sto ...
- 第一篇:Git操作详解
最近由于项目的需要,我需要负责整个项目的托管,其中涉及到很多Git相关的命令,所以就将之前用到的git相关的命令做了一个总结和归纳.由于开发环境是Linux,所以我接下来的操作命令均针对Linux环境 ...
- python第七篇:Python 列表操作详解
Python列表操作详解 list函数 list() #生成一个空的列表 list(iterable) #用可迭代对象初始化一个列表 列表的 and 运算和 or 运算 列表and运算 > ...
- 【BZOJ 4709】柠檬 斜率优化dp+单调栈
题意 给$n$个贝壳,可以将贝壳分成若干段,每段选取一个贝壳$s_i$,这一段$s_i$的数目为$num$,可以得到$num^2\times s_i$个柠檬,求最多能得到几个柠檬 可以发现只有在一段中 ...
- codeforces 655D D. Robot Rapping Results Report(拓扑排序+拓扑序记录)
题目链接: D. Robot Rapping Results Report time limit per test 2 seconds memory limit per test 256 megaby ...
- 嵌套list的实例化
在LeetCode上遇到这样返回值 public class Solution { public List<List<Integer>> levelOrder(TreeNode ...