USACO Section1.1 Friday the Thirteenth 解题报告
friday解题报告 —— icedream61 博客园(转载请注明出处)
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
据说曾经的黑色星期五是13号?本题让我们看看13号与星期五是否比与别的日子更有缘。
给出正整数n,请告诉我在“1900年1月1日”到“1900+n-1年12月31日”中,星期一到星期天各自有多少个13号。
注意,输出时,顺序是周六、周日、周一、周二、周三、周四、周五,一共7个数,空格隔开。
【数据范围】
n<=400
【输入样例】
20
【输出样例】
36 33 34 33 35 35 34
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
做法很简单,每个月都有13号,所以枚举所有的月份就好了。过程中判断一下平年闰年,保证每月日子别算错就好。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
这题写完交上去WA,一看发现输出要求是周六放在第一个……
改完交上去又WA,这次怎么也找不出错来,结果要来了DYZ的AC代码,发现自己change函数三个return没写进if的大括号里,手生啊!
吐槽:我的代码中有对n==0的特判,是因为我被USACO Translate上的翻译坑了……原题中n是正整数,被翻译成了非负数,我也是醉了……
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROG: friday
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; int add[+]={ ,,,,,,,,,,,, }; ifstream in("friday.in");
ofstream out("friday.out"); int n,r[]; void change(int y)
{
if(y%==) { add[]=; return; }
if(y%==) { add[]=; return; }
if(y%==) { add[]=; return; }
add[]=;
}
void work()
{
cout<<"in work"<<endl;
int state=;
for(int y=;y<=+n-;++y)
{
change(y); cout<<"y="<<y<<"\tday="<<add[]<<endl;
for(int m=;m<=;++m)
{
++r[state]; //cout<<"m="<<m<<"\tstate="<<state;
state=(state+add[m])%; //cout<<"\tadd="<<add[m]<<endl;
}
}
out<<r[]<<' '<<r[]<<' '<<r[]<<' '<<r[]<<' '<<r[]<<' '<<r[]<<' '<<r[]<<endl;
} int main()
{
in>>n;
if(n==) { out<<"0 0 0 0 0 0 0"<<endl; } else work();
in.close(); out.close();
return ;
}
最新文章
- 测试秒杀新版本3.5 stieserver cms
- linux注销、关机、重启
- SQL 游标使用实例
- linux硬盘分区格式化及挂载
- FZU 2214 Knapsack problem 01背包变形
- 最好的Java IDE之争:Eclipse PK IntelliJ IDEA
- (转)mongoDB 禁用大内存页面 transparent_hugepage=never
- linux命令行解析函数介绍
- wuzhicms短信API 实例调用
- CentOS python升级到3.5时yum报错
- python--对于装饰器的理解
- 在项目中创建单元测试时junit的配置和使用
- javascript umd esm slim
- Win10系列:C#应用控件基础21
- Table转换成实体、Table转换成实体集合(可转换成对象和值类型)
- [Web 前端] React高级教程(es6)——(2)对于Refs最新变动的理解
- 2018.09.09 bzoj4403: 序列统计(Lucas定理)
- iOS完全自学手册——[二]Hello World工程
- 《信息安全技术》实验一 PGP的原理与使用
- JUnit中按照顺序执行测试方式
热门文章
- anaconda和jupyter notebook使用方法
- jwt 在.net core 2.0的使用
- java连接ssh执行shell脚本
- Unable to launch the Java Virtual Machine
- EF 连接 mysq l数据库 code first模式 的实践
- npm包发布过程
- 安装ubuntu-tweak
- PHP中的生成XML文件的4种方法分享
- 批量删除xml文件中的<;?xml version=";1.0"; ?>;
- HDU2837 Calculation(扩展欧拉定理)