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 ;
}

最新文章

  1. 测试秒杀新版本3.5 stieserver cms
  2. linux注销、关机、重启
  3. SQL 游标使用实例
  4. linux硬盘分区格式化及挂载
  5. FZU 2214 Knapsack problem 01背包变形
  6. 最好的Java IDE之争:Eclipse PK IntelliJ IDEA
  7. (转)mongoDB 禁用大内存页面 transparent_hugepage=never
  8. linux命令行解析函数介绍
  9. wuzhicms短信API 实例调用
  10. CentOS python升级到3.5时yum报错
  11. python--对于装饰器的理解
  12. 在项目中创建单元测试时junit的配置和使用
  13. javascript umd esm slim
  14. Win10系列:C#应用控件基础21
  15. Table转换成实体、Table转换成实体集合(可转换成对象和值类型)
  16. [Web 前端] React高级教程(es6)——(2)对于Refs最新变动的理解
  17. 2018.09.09 bzoj4403: 序列统计(Lucas定理)
  18. iOS完全自学手册——[二]Hello World工程
  19. 《信息安全技术》实验一 PGP的原理与使用
  20. JUnit中按照顺序执行测试方式

热门文章

  1. anaconda和jupyter notebook使用方法
  2. jwt 在.net core 2.0的使用
  3. java连接ssh执行shell脚本
  4. Unable to launch the Java Virtual Machine
  5. EF 连接 mysq l数据库 code first模式 的实践
  6. npm包发布过程
  7. 安装ubuntu-tweak
  8. PHP中的生成XML文件的4种方法分享
  9. 批量删除xml文件中的&lt;?xml version=&quot;1.0&quot; ?&gt;
  10. HDU2837 Calculation(扩展欧拉定理)