第四次CCF-CSP认证(含C++源码)

第四次CCF-CSP认证

  • 第一道(easy)
    • 思路及AC代码
  • 第二道(easy)
    • 思路及AC代码
      • 遇到的问题
  • 第三道(mid)
    • 思路及AC代码

第一道(easy)

在这里插入图片描述
题目链接

思路及AC代码

这题就是将这个矩阵旋转之后输出,观察样例,我们可以将这个旋转表示出来,就是从左到右从上到下输出s[j][i],文字版思路:
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;
const int N=1010;
int s[N][N];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            cin>>s[i][j];
        }
    }
    for(int i=m-1;i>=0;i--)
    {
        for(int j=0;j<n;j++)
        {
            cout<<s[j][i]<<" ";
        }
        cout<<endl;
    }
}

第二道(easy)

在这里插入图片描述
题目链接

思路及AC代码

#include <bits/stdc++.h>
using namespace std;

// 自定义比较函数,用于按出现次数从高到低排序
bool compare(const pair<int, int>& a, const pair<int, int>& b) {
    if (a.second != b.second) {
        return a.second > b.second;
    }
    // 如果出现次数相同,按数字本身从小到大排序
    return a.first < b.first;
}

int main() {
    int n;
    cin >> n;
    vector<int> s(n);
    // 用于记录每个数字的出现次数
    unordered_map<int, int> showup;

    // 读取输入的数字
    for (int i = 0; i < n; i++) {
        cin >> s[i];
        // 统计每个数字的出现次数
        showup[s[i]]++;
    }

    // 将 unordered_map 中的元素存储到 vector 中
    vector<pair<int, int>> freq(showup.begin(), showup.end());

    // 按出现次数从高到低排序
    sort(freq.begin(), freq.end(), compare);

    // 输出排序后的结果
    for (const auto& c : freq) {
        cout << c.first << " " << c.second << endl;
    }

    return 0;
}

遇到的问题

一开始看错题目了 题目是要按出现频率从高到低,我看成按数字本身从大到小输出了,还有一个问题就是当你开了一个大小为1010的静态数组之后,就会发现除去输入的n个数字之后,数组里面默认都是0,当你使用哈希表统计数字和它出现次数之间的映射,输出的时候,就会出现0对应的次数是一个很大的数字所以优化成用vector容器来存储好一些
在这里插入图片描述

第三道(mid)

在这里插入图片描述
题目链接

思路及AC代码

思路讲解直接去看y总的视频就好(acwing),这是根据代码AI生成的文字版思路,其实最难的就是第三条,我们需要通过题目给的1850年1月1日是星期二来暴力枚举出目标日期是星期几,这个暴力枚举是这题的关键
在这里插入图片描述
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;

// 判断是否为闰年
bool isLeapYear(int year) {
    return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);
}

// 获取每个月的天数
int daysInMonth(int year, int month) {
    int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    if (month == 2 && isLeapYear(year)) {
        return 29;
    }
    return days[month - 1];
}

// 计算从 1850 年 1 月 1 日到指定日期的天数
int daysSince1850(int year, int month, int day) {
    int totalDays = 0;
    for (int y = 1850; y < year; ++y) {
        totalDays += isLeapYear(y) ? 366 : 365;
    }
    for (int m = 1; m < month; ++m) {
        totalDays += daysInMonth(year, m);
    }
    totalDays += day - 1;
    return totalDays;
}

// 获取指定年份 a 月第 b 个星期 c 的日期
void getDate(int a, int b, int c, int year) {
    int firstDayOfMonth = (daysSince1850(year, a, 1) + 2) % 7;  // 1850 年 1 月 1 日是星期二
    if (firstDayOfMonth == 0) firstDayOfMonth = 7;  // 让星期日对应 7

    int targetDay = 1 + (c - firstDayOfMonth + 7) % 7 + (b - 1) * 7;

    if (targetDay > daysInMonth(year, a)) {
        printf("none\n");
    } else {
        printf("%04d/%02d/%02d\n", year, a, targetDay);
    }
}

int main() {
    int a, b, c, y1, y2;
    scanf("%d %d %d %d %d", &a, &b, &c, &y1, &y2);

    for (int year = y1; year <= y2; ++year) {
        getDate(a, b, c, year);
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983450.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软考中级-数据库-3.3 数据结构-树

定义:树是n(n>=0)个结点的有限集合。当n=0时称为空树。在任一非空树中,有且仅有一个称为根的结点:其余结点可分为m(m>=0)个互不相交的有限集T1,T2,T3...,Tm…,其中每个集合又都是一棵树,并且称为根结点的子树。 树的相关概念 1、双亲、孩子和兄弟: 2、结点的度:一个结…

Django小白级开发入门

1、Django概述 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。 Django 框架的核心组件有&#xff1a; 用于创建模型的对象关系映射为最终用户设计较好的管理界面URL 设计设计者友好的模板…

【爬虫】开篇词

一、网络爬虫概述 二、网络爬虫的应用场景 三、爬虫的痛点 四、需要掌握哪些技术&#xff1f; 在这个信息爆炸的时代&#xff0c;如何高效地获取和处理海量数据成为一项核心技能。无论是数据分析、商业情报、学术研究&#xff0c;还是人工智能训练&#xff0c;网络爬虫&…

C语言 —— 愿此世如黄金般辉煌 - 进制转换与操作符详解

目录 1. 操作符的分类 2. ⼆进制和进制转换 2.1 2进制转10进制 2.2 10进制转2进制 2.3 2进制转8进制 2.4 2进制转16进制 3. 原码、反码、补码 4. 移位操作符 4.1 左移操作符 4.2 右移操作符 5. 位操作符&#xff1a;&、|、^、~ 5.1 & 按位与 5.2 | 按位或 …

VsCode导入时选择相对路径

自动导入时总是以db://开头了&#xff0c;而我们通常需要的是相对路径&#xff0c;对VsCode进行如下设置&#xff1a; 打开 VSCode 设置&#xff1a; 使用快捷键 Ctrl ,&#xff08;Windows/Linux&#xff09;或 Cmd ,&#xff08;Mac&#xff09;。 或者在菜单栏中选择 …

Python3 爬虫 爬虫中间件

爬虫中间件的用法与下载器中间件非常相似&#xff0c;只是它们的作用对象不同。下载器中间件的作用对象是请求request和返回response&#xff1b;爬虫中间键的作用对象是爬虫&#xff0c;更具体地来说&#xff0c;就是写在spiders文件夹下面的各个文件。它们的关系&#xff0c;…

数据库1-2章

第一章 数据库理论 什么是数据库 数据&#xff1a; 描述事物的符号记录&#xff0c; 可以是数字、 文字、图形、图像、声音、语言等&#xff0c;数据有多种形式&#xff0c;它们都可以经过数字化后存入计算机。 数据库&#xff1a; 存储数据的仓库&#xff0c;是长期存放在…

Linux笔记---自定义shell

目录 前言 1. 程序框架 2. 打印命令行提示符 2.1 获取用户名(GetUserName) 2.2 获取主机名(GetHostName) 2.3 获取工作目录(GetPwd) 3. 获取命令行输入 4. 判断是否有重定向 5. 解析命令行 6. 内建命令 6.1 内建命令的特点 6.2 常见内建命令 6.3 内建命令 vs 外部命…

DeepSeek专题:DeepSeek-V2核心知识点速览

AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台&#xff0c;涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…

游戏引擎学习第138天

仓库:https://gitee.com/mrxiao_com/2d_game_3 资产&#xff1a;game_hero_test_assets_003.zip 发布 我们的目标是展示游戏运行时的完整过程&#xff0c;从像素渲染到不使用GPU的方式&#xff0c;我们自己编写了渲染器并完成了所有的工作。今天我们开始了一些新的内容&#…

【Hadoop】详解HDFS

Hadoop 分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统&#xff0c;它是一个高度容错性的系统&#xff0c;适合部署在廉价的机器上&#xff0c;能够提供高吞吐量的数据访问&#xff0c;非常适合大规模数据集上的应用。为了做到可靠性&#xff0c;HDFS创建了…

计算机网络:计算机网络的概念

1.计算机网络&#xff1a;由若干个结点和链接这些的链路组成。 2.集线器&#xff08;Hub&#xff09;&#xff1a;可以把多个结点连接起来&#xff0c;组成一个计算机网络。 不能避免数据冲突的情况 3.交换机&#xff08;Switch&#xff09;:可以把多个结点连接起来&#x…

C/C++类型转换

目录 C语言中的类型转换 隐式类型转换&#xff1a; 显示类型转换&#xff1a; 总结&#xff1a; C中的类型转换 static_cast: reinterpret_cast: const_cast: dynamic_cast: RTTI C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参…

发行基础:宣传片

转载自官方文件 --------------- 宣传片 概览 作为 Steam 发行流程的一部分&#xff0c;您需要上传自己产品的宣传片。 宣传片将会显示在您的产品商店页的顶端&#xff0c;通常是您的潜在客户第一眼会看见的内容。 最佳实践 在 Steam 平台上&#xff0c;宣传片是产品营销中…

MyBatis-Plus (超详细 Spring版)

1 MyBatis-Plus 简介 1.1 简介 MyBatis-Plus&#xff08;简称MP&#xff09;是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为 简化开发、提高效率而生。 1.2 特性 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有…

地下井室可燃气体监测装置:守护地下安全,防患于未“燃”!

在城市的地下&#xff0c;隐藏着无数的燃气管道和井室&#xff0c;它们是城市基础设施建设的重要部分&#xff0c;燃气的使用&#xff0c;给大家的生活提供了极大的便利。在便利生活的背后&#xff0c;也存在潜在的城市安全隐患。 近年来&#xff0c;地下井室可燃气体泄漏事故…

BGP 基本配置实验

实验拓扑 实验需求 按照图示配置 IP 地址&#xff0c;R1 和 R5 上使用环回口模拟业务网段&#xff0c;R2&#xff0c;R3&#xff0c;R4 的环回口用于配置 Router-id 和建立 IBGP 邻居AS 200 运行 OSPF 实现内部网络互通R1&#xff0c;R2&#xff0c;R4&#xff0c;R5 运行 BGP…

解锁AIGC新时代:通义万相2.1与蓝耘智算平台的完美结合引领AI内容生成革命

前言 通义万相2.1作为一个开源的视频生成AI模型&#xff0c;在发布当天便荣登了VBench排行榜的榜首&#xff0c;超越了Sora和Runway等业内巨头&#xff0c;展现出惊人的潜力。模型不仅能够生成1080P分辨率的视频&#xff0c;而且没有时长限制&#xff0c;能够模拟自然动作&…

梦三国2游戏下载

梦三国2是由杭州电魂网络科技股份有限公司自主研发的一款将rts元素融合到rpg网游中的即时战略网络游戏。该作保留了前作的三国文化背景&#xff0c;继承了其特色玩法&#xff0c;优化了画面和操作体验&#xff0c;还基于玩家们的需求提供了有趣新颖的地图和系统。游戏主要分为p…

模型微调-基于LLaMA-Factory进行微调的一个简单案例

模型微调-基于LLaMA-Factory进行微调的一个简单案例 1. 租用云计算资源2. 拉取 LLaMa-Factory3. 安装依赖环境4. 启动 LLaMa-Factory 界面5. 从 Huggingface 下载模型6. 模型验证7. 模型微调 1. 租用云计算资源 以下示例基于 AutoDL 云计算资源。 在云计算平台选择可用的云计…