codevs1384黑色星期五【USACO】
来源:互联网 发布:淘宝食品店铺运营技巧 编辑:程序博客网 时间:2024/06/18 14:36
题目描述 Description
13号又是星期五是一个不寻常的日子吗?
13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13
日落在星期一,星期二……星期日的次数.这个测试从1900年1月1日到
1900+n-1年12月31日.n是一个非负数且不大于400.
这里有一些你要知道的:
1900年1月1日是星期一.4,6,11和9月有30天.其他月份除了2月有31天.闰年2月有29天,平年2月有28天.年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年)以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2100年是平年,而2000年是闰年.
请不要预先算好数据!
输入描述 Input Description
一个整数n.
输出描述 Output Description
七个在一行且相分开的整数,它们代表13日是星期六,星期日,星期一…..星期五的次数.
样例输入 Sample Input
20
样例输出 Sample Output
36 33 34 33 35 35 34
数据范围及提示 Data Size & Hint
n是一个非负数且不大于400.
注意世纪年要整除400才算闰年,年份有限,例子不多,特判一下就行(面向数据编程orz)
#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>using namespace std;int xq[7];int main(){ int n; int now = 1900; scanf("%d",&n); int k = 6; xq[k]++; for(int i = 1; i <= n; i ++) { if(now %4 != 0 || now == 1900 || now == 2100 || now == 2200) for(int j = 1; j <= 11; j ++) { if(j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10|| j==12) { k = (k+31-13+31)%31%7; if(k==0) k = 6; else k --; if(k==0) k=7; xq[k]++; //cout <<++tot<<" "<<k<<endl; } else if(j == 2) { k = (k+28-13+28)%28%7; if(k==0) k = 6; else k--; if(k==0) k=7; xq[k]++; //cout <<++tot<<" "<<k<<endl; } else { k = (k+30-13+30)%30%7; if(k==0) k = 6; else k--; if(k==0) k=7; xq[k]++; // cout <<++tot<<" "<<k<<endl; } } else { for(int j = 1; j <= 11; j ++) { if(j == 1 || j == 3 || j == 5 || j == 7 || j == 8 || j == 10|| j==12) { k = (k+31-13+31)%31%7; if(k==0) k = 6; else k --; if(k==0) k=7; xq[k]++;//cout <<++tot<<" "<<k<<endl; } else if(j == 2) { k = (k+29-13+29)%29%7; if(k==0) k = 6; else k--; if(k==0) k=7; xq[k]++; // cout <<++tot<<" "<<k<<endl; } else { k = (k+30-13+30)%30%7; if(k==0) k = 6; else k--; if(k==0) k=7; xq[k]++; } } } now ++; if(i == n) break; k = (k+31-13+31)%31%7; if(k==0) k = 6; else k --; if(k==0) k=7; xq[k]++; } cout <<xq[6]<<" "<<xq[7]<<" "; for(int i = 1; i <= 5; i ++) cout <<xq[i]<<" "; return 0;}
1 0
- codevs1384黑色星期五【USACO】
- USACO 黑色星期五
- 【USACO】黑色星期五
- usaco第三题黑色星期五
- 1384 黑色星期五 USACO
- USACO——黑色星期五
- USACO 1.1 黑色星期五 (模拟)
- Friday the Thirteenth(黑色星期五) USACO
- USACO section 1.1.3 黑色星期五
- USACO 1.1 黑色星期五
- USACO——Friday the Thirteenth 黑色星期五
- (usaco) Friday the Thirteenth 黑色星期五
- USACO 1.1 黑色星期五Friday the Thirteenth
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 黑色星期五
- 【CUDA学习笔记】3.纹理引用API
- Redis-(Command.java)命令类
- Coursera Machine Learning 第五周 quiz Programming Exercise 4: Neural Networks Learning
- There are no resources that can be added or removed from the server...解决办法
- python学习笔记 进程和线程
- codevs1384黑色星期五【USACO】
- 实战c++中的vector系列--正确释放vector的内存(clear(), swap(), shrink_to_fit())
- linux下获得本地真实IP地址,非127.0.0.1
- CentOS 7 安装Mariadb 及详解
- hdu 3564 Another LIS(线段树+lis)
- JS与OC互相调用的一百种方法(包括WKWebView和UIWebView)
- 【用户说体验】关于阿里百川HotFix你需要了解的一些细节
- opengles图像处理之浮雕效果
- android 自定义view(一)