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

USACO Section1.1 Friday the Thirteenth 解题报告的更多相关文章

  1. USACO Section1.4 Mother's Milk 解题报告

    milk3解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  2. USACO Section1.2 Name That Number 解题报告

    namenum解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...

  3. USACO Section1.3 Ski Course Design 解题报告

    skidesign解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...

  4. USACO Section 1.1 Friday the Thirteenth 解题报告

    题目 题目描述 黑色星期五是否真的是一件不同寻常的事情?按理来说每个月的13号可能是星期一,或者是星期二...或者是星期天,但是黑色星期五的存在让我们不禁开始猜想,难道每个月的13号刚好是星期五的频率 ...

  5. USACO Section 1.3 Prime Cryptarithm 解题报告

    题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- parti ...

  6. USACO Section 1.4 Arithmetic Progressions 解题报告

    题目 题目描述 现在给你一个数集,里面的数字都是由p^2+q^2这种形式构成的0 <= p,q <= M,我现在需要你在其中找出一个长为N的等差数列,数列中的第一个数字为a,公差为b,当你 ...

  7. USACO Section 1.3 Combination Lock 解题报告

    题目 题目描述 农夫John的牛从农场逃脱出去了,所以他决定用一个密码锁来把农场的门锁起来,这个密码锁有三个表盘,每个表盘都是环形的,而且上面刻有1~N,现在John设了一个开锁密码,而且这个锁的设计 ...

  8. USACO Section 1.3 Barn Repair 解题报告

    题目 题目描述 某农夫有一个养牛场,所有的牛圈都相邻的排成一排(共有S个牛圈),每个牛圈里面最多只圈养一头牛.有一天狂风卷积着乌云,电闪雷鸣,把牛圈的门给刮走了.幸运的是,有些牛因为放假,所以没在自己 ...

  9. USACO Section 1.3 Mixing Milk 解题报告

    题目 题目描述 Merry Milk Makers 公司的业务是销售牛奶.它从农夫那里收购N单位的牛奶,然后销售出去.现在有M个农夫,每个农夫都存有一定量的牛奶,而且每个农夫都会有自己的定价.假设所有 ...

随机推荐

  1. Udacity carnd2 Sensor Fusion, Extended Karman Filter (English)

    Extended Karman Filter Zhenglei 2018 January This is a project to estimate the car position from Lid ...

  2. 利用Excel导入数据到SAP C4C

    假设要导入一个Account数据到C4C系统. 工作中心Data Workbench,工作中心视图Import,点download metadata: 会下载一个压缩包到本地. 进入文件夹Templa ...

  3. TCP与虚连接

    http://bbs.csdn.net/topics/390262738 在TCP通信时,会建立一个从源端到目的端的虚拟连接.感觉这种连接类似电路交换,只是这种连接是虚拟存在的.发送的报文都应该是沿着 ...

  4. 定位webpack文件大小

    之前发现一个神器,记录一下,可以可视化webpack打包的每个js文件大小,这样对我们优化代码是有帮助的,有目标的 https://www.npmjs.com/package/webpack-bund ...

  5. node.js 下使用 util.inherits 来实现继承

    上一篇博客说到了node.js继承events类实现事件发射和事件绑定函数,其中我们实现了一个公用基类 _base ,然后在模型中差异化的定义了各种业务需要的模型并继承 _base 公共基类.但是其中 ...

  6. CDH4.5.0下安装lzo

    参考 http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/1.0.1/Installing-and-Using- ...

  7. VMWare关闭beep声

    在虚拟机文件夹下找到 .vmx 文件,在文件末尾添加 mks.noBeep = "TRUE" ,重启虚拟机即可.

  8. extjs3EmptyText 上传自动清空的问题

    在extjs3表单的操作中,输入框经常有提示性的默认字段,比如: // === 接入单位的Form表单 ====== var jrdwForm = new Ext.form.FormPanel({ b ...

  9. Extjs4.2 tabPosition left 相关

    解决tabPosition:left 标签的方向问题   <%@ page language="java" import="java.util.*" pa ...

  10. 数据库MySQL基本介绍安装使用及文件导入导出

    1.数据库(data base) 1.1 简述 把文件存储在一台电脑上(服务器),其他电脑用户可以通过账号密码登陆,通过网络去访问这台电脑上的文件,但是由于每个人的数据是不同的,所以你只能通过自己的账 ...