第四次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; // 让星期日对应 7int 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;
}
相关文章:
第四次CCF-CSP认证(含C++源码)
第四次CCF-CSP认证 第一道(easy)思路及AC代码 第二道(easy)思路及AC代码遇到的问题 第三道(mid)思路及AC代码 第一道(easy) 题目链接 思路及AC代码 这题就是将这个矩阵旋转之后输出…...
Netty基础—1.网络编程基础一
大纲 1.什么是OSI开放系统互连 2.OSI七层模型各层的作用 3.TCP/IP协议的简介 4.TCP和UDP的简介 5.TCP连接的三次握手 6.TCP连接的四次挥手 7.TCP/IP中的数据包 8.TCP通过确认应答与序列号提高可靠性 9.HTTP请求的传输过程 10.HTTP协议报文结构 11.Socket、短连接、长…...
【理想解法学习笔记】
目录 理想解法原理简介算法步骤属性值规范化方法代码示例 理想解法 原理简介 TOPSIS(Technique for Order Preference by Simi larity to IdealSolution)法是一种逼近理想解的排序方法。其基本的处理思路是:首先建立初始化决策矩阵,而后基于规范化后的初…...
98.在 Vue3 中使用 OpenLayers 根据 Resolution 的不同显示不同的地图
在 Vue3 中使用 OpenLayers 根据 Resolution 的不同显示不同的地图 前言 在 Web GIS(地理信息系统)应用开发中,地图的 Resolution(分辨率)是一个重要的概念。不同的 Resolution 适用于不同的地图层级,有时…...
Docker 部署 Vaultwarden
一、前言 1. 官网 1.1 Vaultwarden https://github.com/dani-garcia/vaultwarden https://github.com/wcjxixi/Vaultwarden-Wiki-Chn https://hub.docker.com/r/vaultwarden/server https://rs.ppgg.in/ # Vaultwarden Wiki 中文版 https://geekdaxue.co/read/Vaultward…...
Smart contract -- 自毁合约
在区块链开发中,Solidity 语言提供了强大的功能,其中自毁合约是一个独特且重要的特性。今天,就让我们深入探讨一下 Solidity 中的自毁合约,以及如何使用 selfdestruct 函数。 注意:使用继承时请确保代码的正确性&#…...
unity学习64,第3个小游戏:一个2D跑酷游戏
目录 学习参考 素材资源导入 1 创建项目 1.1 创建1个2D项目 1.2 导入素材 2 背景图bg 2.0 bg素材 2.1 创建背景 2.2 修改素材,且修改摄像机等 2.2.1 修改导入的原始prefab素材 2.2.2 对应调整摄像机 2.2.3 弄好背景 2.3 背景相关脚本实现 2.3.1 错误…...
Python Flask 在网页应用程序中处理错误和异常
Python Flask 在网页应用程序中处理错误和异常 Python Flask 在网页应用程序中处理错误和异常 Python Flask 在网页应用程序中处理错误和异常 在我们所有的代码示例中,我们没有注意如何处理用户在浏览器中输入错误的URL或向我们的应用程序发送错误的参数集的情况。…...
模板方法模式的C++实现示例
核心思想 模板方法设计模式是一种行为设计模式,它定义了一个算法的框架,并将某些步骤的具体实现延迟到子类中。通过这种方式,模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的核心在于: …...
水下机器人推进器PID参数整定与MATLAB仿真
水下机器人推进器PID参数整定与MATLAB仿真 1. PID控制原理 目标:通过调节比例(P)、积分(I)、微分(D)参数,使推进器输出力快速稳定跟踪期望值。传递函数(示例):推进器动力学模型可简化为: [ G(s) = \frac{K}{\tau s + 1} \cdot e^{-Ts} ] 其中:K为增益,τ为时间常…...
在本地部署DeepSeek等大模型时,需警惕的潜在安全风险
在本地部署DeepSeek等大模型时,尽管数据存储在本地环境(而非云端),但仍需警惕以下潜在安全风险: 1. 模型与数据存储风险 未加密的存储介质:若训练数据、模型权重或日志以明文形式存储,可能被物…...
智能焊机监测系统:打造工业安全的数字化盾牌
在现代工业生产中,焊机作为核心设备之一,其稳定性和安全性直接关系到生产效率和产品质量。德州迪格特科技有限公司推出的智能焊机监测系统,通过先进的技术手段,为工业生产构筑了一道坚固的安全防线。 智能监测,保障焊…...
【redis】string类型相关操作:SET、GET、MSET、MGET、SETNX、SETEX、PSETEX
文章目录 二进制存储编码转换SET 和 GETSETGET MSET 和 MGETSETNX、SETEX 和 PSETEX Redis 所有的 key 都是字符串,value 的类型是存在差异的 二进制存储 Redis 中的字符串,直接就是按照二进制数据的方式存储的 不仅仅可以存储文本数据,还可…...
GaussDB安全配置指南:从认证到防御的全方面防护
一、引言 随着企业数据规模的扩大和云端化进程加速,数据库安全性成为运维的核心挑战之一。GaussDB作为一款高性能分布式数据库,提供了丰富的安全功能。本文将从 认证机制、权限控制、数据加密、审计日志 等维度,系统性地讲解如何加固 Ga…...
总结学习课程
1. 数据加载与预处理 PyTorch工具加载和预处理数据(如MNIST数据集)。 2. 定义模型 - 使用nn.Module构建神经网络,定义各层和前向传播。 3. 损失函数与优化器: 选择损失函数(如交叉熵损失)和优化…...
Ubuntu20.04搭建gerrit code review
一、环境准备 1. 安装 Java 环境 Gerrit 依赖 Java 运行环境(推荐 JDK 8): sudo apt install openjdk-11-jdk 验证安装: java -version 2. 安装 Git sudo apt install git 3. 可选依赖 数据库:Gerrit …...
MacOS安装FFmpeg和FFprobe
按照网上很多教程安装,结果都失败了,后来才发现是路径问题,其实安装过程很简单(无奈) 第一步: 在官网下载 打开页面后,可以看到FFmpeg、FFprobe、FFplay和FFserver的下载图标 第二步࿱…...
Redis7系列:设置开机自启
前面的文章讲了Redis和Redis Stack的安装,随着服务器的重启,导致Redis 客户端无法连接。原来的是Redis没有配置开机自启。此文记录一下如何配置开机自启。 1、修改配置文件 前面的Redis和Redis Stack的安装的文章中已经讲了redis.config的配置…...
SpringAI介绍及本地模型使用方法
博客原文地址 前言 Spring在Java语言中一直稳居高位,与AI的洪流碰撞后也产生了一些有趣的”化学反应“,当然你要非要说碰撞属于物理反应也可以, 在经历了一系列复杂的反应方程后,Spring家族的新成员——SpringAI,就…...
Zookeeper实践指南
Zookeeper实践指南 1. 什么是 Zookeeper? Zookeeper 是 Apache 旗下的一个开源分布式协调框架,主要用于解决分布式系统中的一致性问题,提供高效可靠的分布式数据管理能力。 1.1 Zookeeper 的核心特性 顺序一致性:客户端的更新…...
Unity 基础知识总结(持续更新中...)
引擎基础 Unity有哪几个主要窗口? Scene窗口 用于场景搭建和UI界面拼接 Game窗口 游戏运行预览 Hierarchy窗口 查看和调整场景对象层级结构 Project窗口 游戏工程资源 Inspector创建 属性查看器,属性设置、脚本组件挂载 Unity提供了几种光源…...
IDEA接入阿里云百炼中免费的通义千问[2025版]
安装deepseek 上一篇文章IDEA安装deepseek最新教程2025中说明了怎么用idea安装codeGPT插件,并接入DeepSeek,无奈接入的官方api已经不能使用了,所以我们尝试从其他地方接入 阿里云百炼https://bailian.console.aliyun.com/ 阿里云百炼是阿…...
中级网络工程师面试题参考示例(1)
一、基础理论 1. OSI七层模型与TCP/IP四层模型的区别是什么?请举例说明第三层(网络层)和第四层(传输层)的核心协议。 参考答案: OSI七层模型分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用…...
主流大语言模型中Token的生成过程本质是串行的
主流大语言模型中Token的生成过程本质是串行的 flyfish 1. 串行生成 自回归模型的核心逻辑: 大模型(如GPT-2)采用自回归架构,每个Token的生成必须基于已生成的完整历史序列。例如,生成“今天天气很好”时:…...
3.03-3.09 Web3 游戏周报:Sunflower Land 周留存率 74.2%,谁是本周最稳链游?
回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【3.03–3.09】Web3 游戏行业动态 Sui 背后开发公司 Mysten Labs 宣布收购游戏开发平台 ParasolYescoin 创始人因合伙人纠纷被警方带走,案件升级为刑事案件Animoca B…...
高级java每日一道面试题-2025年2月18日-数据库篇-MySQL 如何做到高可用方案?
如果有遗漏,评论区告诉我进行补充 面试官: MySQL 如何做到高可用方案? 我回答: 在Java高级面试中,讨论MySQL如何实现高可用性方案是一个重要话题。这不仅涉及到数据库的稳定性和可靠性,还关系到系统的整体性能和用户体验。以下是结合提供的信息进行综…...
【编程题】7-5 堆中的路径
7-5 堆中的路径 1 题目原文2 思路解析3 代码实现 1 题目原文 题目链接:7-5 堆中的路径 将一系列给定数字插入一个初始为空的最小堆 h h h。随后对任意给定的下标 i i i,打印从第 i i i 个结点到根结点的路径。 输入格式: 每组测试第 1 1 1 行包含 …...
Scala 中的访问修饰符
在Scala中,面向对象的权限控制主要通过访问修饰符来实现。Scala提供了以下几种访问修饰符来控制类、对象、成员变量和方法的访问权限: 1. 默认访问权限(无修饰符) 如果没有指定任何访问修饰符,成员默认是public的&…...
flask_restx 定义任意类型参数
之前定义的content只是string,现在需要支持即可以string也可以list from flask_restx import fieldsclass Messages:def get_model(api):return api.model("Message",{"role": fields.String(requiredTrue, description"The role of messa…...
Unity3D网格简化与LOD技术详解
前言 在Unity3D游戏开发中,网格简化(Mesh Simplification)和细节层次(Level of Detail, LOD)技术是优化渲染性能的关键手段,尤其在处理复杂场景和高精度模型时至关重要。这两种技术通过减少模型的几何复杂…...
