首页 > 其他分享 >【题解】#373. 「USACO1.1」Friday the Thirteenth 题解(2023-07-19更新)

【题解】#373. 「USACO1.1」Friday the Thirteenth 题解(2023-07-19更新)

时间:2023-08-17 19:00:16浏览次数:49  
标签:02 USACO1.1 07 int 题解 31 Part 2023

#373. 「USACO1.1」Friday the Thirteenth 题解

本文章的访问次数为

Part 1 提示

题目传送门

  • 欢迎大家指出错误并私信这个蒟蒻
  • 欢迎大家在下方评论区写出自己的疑问(记得 @ 这个蒟蒻)

Part 2 背景

这个蒟蒻又一次写了一篇大水题的题解 (话说为什么是又) ,当然也是为了纪念他的 \(200\) AC。

Part 3 更新日志

  • 2023-02-01 17:20 文章完成
  • 2023-02-02 17:50 提交审核
  • 2023-02-03 18:50 文章审核通过
  • 2023-02-03 19:17 修改了注释
  • 2023-05-25 20:25 修改了 \(\LaTeX\)
  • 2023-05-25 20:32 再次修改了 \(\LaTeX\),感谢 ACRUSHj 提出错误
  • 2023-07-01 15:55 修改了代码
  • 2023-07-12 14:40 将代码转换为图片形式
  • 2023-07-19 20:50 更改了文章格式,使文章看起来更加美观

Part 4 题目知识点

模拟 + 数学

Part 5 题意说明

这道题的要求其实就是写一个程序来计算在 \(n\) 年里 \(13\) 日在星期一,星期二 \(\cdots\) 星期日的次数。这个测试从 \(1900\) 年 \(1\) 月 \(1\) 日到 \(1900+n-1\) 年 \(12\) 月 \(31\) 日。\(n\) 是一个非负数且不大于 \(400\) 。请不要预先算好数据 !
很明显,这道题会考察到和年份有关的知识点,总结一下就是四年一闰,百年不闰,四百年又闰。(不会的话自己去问小学老师,你的小学老师肯定不会怀疑你是不是他教的

Part 6 代码

// #373. 「USACO1.1」Friday the Thirteenth
// code by:st20250113
#include <bits/stdc++.h>

using namespace std;

int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, b[8]; // a数组预处理每月天数,b数组用来存储答案

int main()
{
    int n, c = 0;
    scanf("%d", &n);
    for (int i = 1900; i < 1900 + n; i++)
    {
        int f = 0; // 闰年标记
        if ((i % 4 == 0) && (i % 100) || (i % 400 == 0))
        {
            f = 1; // 判断是否为闰年,若成立则f赋值为真
        }
        for (int j = 1; j <= 12; j++)
        {
            int e = 0; // 如果为闰年,2月就要多一天,e在闰年情况下使2月的循环变量增大1
            if (f && j == 2)
            {
                e = 1;
            }
            for (int k = 1; k <= a[j] + e; k++) // k循环日期,m[j]即j月的天数
            {
                c++; // st每天增加
                if (k == 13)
                {
                    b[c % 7]++;
                }
            }
            if (e == 1)
            {
                e = 0; // 2月用过后要清零
            }
        }
    }
    cout << b[6] << " " << b[0] << " " << b[1] << " " << b[2] << " " << b[3] << " " << b[4] << " " << b[5]; // 输出顺序是Sat Sun Mon Tue Wed Thu Fri
    return 0;
}

标签:02,USACO1.1,07,int,题解,31,Part,2023
From: https://www.cnblogs.com/szyawa/p/17638596.html

相关文章

  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-19更新)
    #68.「NOIP2004」津津的储蓄计划题解本文章的访问次数为次。Part1提示题目传送门欢迎大家指出错误并私信这个蒟蒻欢迎大家在下方评论区写出自己的疑问(记得@这个蒟蒻)Part2背景这是这个蒟蒻的第一篇题解,也是这个蒟蒻对自己的\(50\)AC的纪念。Part3更新日志......
  • 算法题解之罗马数字智力游戏
    题目描述牛牛和朋友在玩耍时发现了一款关于罗马数字的智力游戏。在这个游戏中,他们首先需要将一个给定的整数num转换为对应的罗马数字。但是,他们发现,当他们每次转换后的结果字符串长度达到了一个阈值limit时,他们需要将字符串反转。请编写一个函数,将给定的整数num转换为对应的......
  • [JOISC 2014 Day3] 电压 题解
    题面给定\(n\)个点\(m\)条边的无向图。现在要对每个点黑白染色。若能够使一条边连接的两点颜色相同,其他边连接的两点颜色不同,则这条边合法。求合法的边数。$2\leqn\leq10^5,1\leqm\leq2\times10^5$。图可能不连通,不保证没有重边。题解首先考虑转化一下题目......
  • P3780 [SDOI2017] 苹果树 题解
    DescriptionP3780[SDOI2017]苹果树给定一棵\(n\)个点的树,每个点有若干个价值相同的苹果,儿子能摘至少一个仅当父亲被摘至少一个。给定\(k\),设\(h\)为你摘的苹果的最大深度,你做多能摘\(k+h\)个,求最大价值。对于所有数据,\(1\len\le5\times10^4\),\(1\lek\le5\time......
  • 春秋云镜像-CVE-2022-0788
    准备:攻击机:win10。靶机:春秋云镜像-CVE-2022-0788。写这个的时候在网上想查找下该漏洞的利用方式,没有找到相关的资料,因此记录下自己通过这个靶场的poc与exp。curl'http://eci-2ze4uhij7kcjyftbwltx.cloudeci1.ichunqiu.com/index.php?rest_route=/xs-donate-form/payment-......
  • P4183 [USACO18JAN] Cow at Large P 题解
    题意分析我们首先想到,枚举贝茜在\(x\)点,枚举度数大于\(2\)的点为\(y\)。设\(x\)的度数为\(a\),\(y\)的度数为\(b\)。我们首先发现每个\(x\)点都有一个初始的贡献为\(a\)条通往叶子的路径。如果点\(y\)到最近的叶子节点的距离大于到\(x\)的点的距离(农夫不能在......
  • 安防监控视频汇聚平台EasyCVR视频平台调用iframe地址无法播放的问题解决方案
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝对接等功能。为了便于用户......
  • 安防监控视频汇聚平台EasyCVR视频平台调用iframe地址无法播放的问题解决方案
    安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、视频云存储、视频集中存储、视频存储磁盘阵列、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、AI算法中台智能分析无缝对接等功能。为了便于用户二......
  • vue项目在360浏览器兼容模式下SCRIPT1002: 语法错误以及“fetch”未定义问题解决
    使用360浏览器的兼容模式,vue项目页面空白,打开控制台,发现如下报错:SCRIPT1002:语法错误 解决方法如下:1、安装依赖npminstall--savecore-jsregenerator-runtime2、在main.js引入import'core-js/stable';import'regenerator-runtime/runtime';3、在babel.confi......
  • CF1545B题解
    CF1545B题解题目描述你有一个长为\(n\)的棋盘,这个棋盘上有一些棋子,你可以进行如下操作:如果第\(i+2\)个位置是空的,且第\(i+1\)个位置非空,则可以将第\(i\)个位置的棋子挪到第\(i+2\)个位置(\(i+2\leqn\)).如果第\(i-2\)个位置是空的,且第\(i-1......