第五次CCF-CSP认证(含C++源码)
第五次CCF-CSP认证
- 第一道(easy)
- 思路及AC代码
- 第二道(easy)
- 思路及AC代码
- solution 1
- solution 2
- 第三道(mid)
- 思路及AC代码(mid)
第一道(easy)

题目链接
思路及AC代码
基本思路:
比如随便给一个数列:1 2 3 4 4 6 6 6
很明显输出的是5 我们在数有几段的时候有两种情况我们会加1
1.前面没有数字的时候,也就是第一段
2.前面数字和后面数字不一样的时候
如果我们用一次遍历就能输出正确答案,我们就需要做到以上两点,第二点很好搞,我们怎么处理第一段,如果我们不管他 在某些情况之下就会少输出一段,我觉得那干脆就一开始就默认有一段不就好了吗,具体到代码中就是让我们的count初始化为1,然后从数组第二位开始遍历就好了,这样就不用搞什么乱七八糟的东西,本身就是一道很简单的题目不是吗
#include <bits/stdc++.h>
using namespace std;
const int N =1010;
int n;
int s[N];
int main()
{cin>>n;for(int i=0;i<n;i++){cin>>s[i];}int count=1;for(int j=1;j<n;j++){if(s[j]!=s[j-1]){count++;}}cout<<count<<endl;
}
第二道(easy)

题目链接
思路及AC代码
有了昨天的帖子铺垫,这道是不是有些过于轻松写意了O(∩_∩)O哈哈~
这个帖子的第三题 如果忘了可以温一温
我觉得区别就是昨天那题需要我们通过getdate函数枚举出具体日期,不论是控制输入输出以及细节处理要求都比较高一些,这题是直接给你个年数天数,问你某年的第x天是几月几号,这样我们就暴力一下就可以,直到刚刚好枚举到第x天为止
solution 1
#include <bits/stdc++.h>
using namespace std;
int is_leapyear(int year)
{if(year%4==0 && year%100 ||year%400==0){return 1;}else{return 0;}
}
// 获取每个月的天数
int daysInMonth(int year, int month) {int days[13] = {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};if (month == 2 ) {return days[2]+is_leapyear(year);}return days[month];
}
int main()
{int year,days;cin>>year>>days;for(int i=1;i<=12;i++){for(int j=1;j<=daysInMonth(year,i);j++){if(--days ==0){printf("%d\n%d\n",i,j);return 0;}}}return 0;
}
solution 2
我在题解里看到了比较简洁的代码粘过来了,其实思路是一样的 只不过更直接了
#include<bits/stdc++.h>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{int y,d;cin>>y>>d;if(y%4==0&&y%100!=0||y%400==0)a[2]=29;else a[2]=28;int x=0;while(d>0){if(d-a[x]<=0)break;else{d-=a[x];x++;}}cout<<x<<'\n'<<d;
}作者:垫底抽風
链接:https://www.acwing.com/solution/content/132282/
第三道(mid)

题目链接
思路及AC代码(mid)
这题 题干看着挺吓人 我用AI解读了一下题目 我一开始自己做也读了半天才看懂是要干什么


我自己没有全部弄明白 在这里给出参考代码 跟Y总课上的代码是一样的 思路参考:yxc

#include <iostream>
#include <cstring>
#include <unordered_map>
#include <vector>using namespace std;int n, m;
unordered_map<string, string> vars;
vector<string> strs;int main()
{cin >> n >> m;getchar(); //过滤cin读剩下的回车while(n -- ){string str;getline(cin, str);strs.push_back(str);}while(m -- ){string key, value;cin >> key; //变量名不含空格,可以直接cin读char c; //变量值含空格和双引号,用getchar()读while(c = getchar(), c != '\"'); //过滤第一个引号之前的内容while(c = getchar(), c != '\"') value += c;vars[key] = value; //存入哈希表}for(auto &str : strs) //遍历vetor中的每一行{for(int i = 0; i < str.size();)if(i + 1 < str.size() && str[i] == '{' && str[i + 1] == '{') //如果需要替换变量{int j = i + 3;string key;while(str[j] != ' ' || str[j + 1] != '}' || str[j + 2] != '}') //没有到结尾的话key += str[j ++ ]; //读取模板中的变量cout << vars[key]; //哈希表替换模板中的值i = j + 3; //处理完之后要跳过空格和两个右括号}else cout << str[i ++ ]; //不需要替换变量,直接输出模板原内容cout << endl;}return 0;
}相关文章:
第五次CCF-CSP认证(含C++源码)
第五次CCF-CSP认证 第一道(easy)思路及AC代码 第二道(easy)思路及AC代码solution 1solution 2 第三道(mid)思路及AC代码(mid) 第一道(easy) 题目链接 思路及…...
个人学习编程(3-06) 搜索
树的高度: 题目: PS G:\vscodetest> .\ab.exe 5 5 1 2 1 4 1 5 2 3 3 #include <stdio.h> #include <vector> #include <queue> using namespace std; int main() {int n,m;scanf("%d %d",&n,&m);vector<vec…...
Springboot中的@Value注解:用法与潜在问题探索
在Spring Boot开发中,有个非常实用的注解,那就是Value!它可以帮助我们轻松地从配置文件中读取属性值。想象一下,在应用程序中管理各种配置,比如数据库连接信息、服务URL或者API密钥等,使用Value是多么方便呀…...
HTML 文本格式化
HTML 文本格式化 在构建网页的过程中,文本的格式化是一个至关重要的环节。HTML(HyperText Markup Language)提供了丰富的标签和属性来帮助我们实现各种文本格式化的需求。本文将详细介绍HTML中常见的文本格式化方法,包括字体、颜…...
springcloud sentinel教程
QPS(Queries Per Second)即每秒查询率 TPS,每秒处理的事务数目 PV(page view)即页面浏览量 UV 访问数(Unique Visitor)指独立访客访问数 一、初识Sentinel 什么是雪崩问题? 微服务之间相…...
从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十一) 实现服务端和客户端socketio 连接
1.后端部分 socketIO文档参考Socket.IO 首先在lib下新建socket.js文件 参考服务器API | Socket.IO import {Server} from socket.io; import http from http import express from "express"const app express() const server http.createServer(app) const io …...
【GoTeams】-3:构建api、重构错误码
本文目录 1. 构建api梳理调用关系api包的作用路由梳理注册Register代码语法 2. 重构错误码 1. 构建api 首先复制project-user,改名为project-api,放在总的路径下,然后在工作区中进行导入。 运行命令go work use .\project-api\新建工作区之…...
《苍穹外卖》SpringBoot后端开发项目重点知识整理(DAY1 to DAY3)
目录 一、在本地部署并启动Nginx服务1. 解压Nginx压缩包2. 启动Nginx服务3. 验证Nginx是否启动成功: 二、导入接口文档1. 黑马程序员提供的YApi平台2. YApi Pro平台3. 推荐工具:Apifox 三、Swagger1. 常用注解1.1 Api与ApiModel1.2 ApiModelProperty与Ap…...
深入解析跨域问题及其解决方案:从原理到代码实践
跨域问题是前端开发中常见的安全限制问题,主要源于浏览器的同源策略(Same-Origin Policy)。同源策略限制了从一个源加载的文档或脚本如何与另一个源的资源进行交互。为了更深入地理解跨域问题及其解决方案,我们需要从原理、限制条…...
BLUEM2引擎源码2025最新版
BLUE 引擎解析:传奇私服圈中的热门引擎 一、BLUE 引擎简介 BLUE 引擎是传奇私服圈子中较为知名的一款游戏引擎,它在传统的传奇引擎基础上进行了优化和扩展,使得私服开发者可以更加方便地搭建和管理服务器。相比于早期的 GEE、LEG、Hero 等引…...
【RAG】检索后排序 提高回答精度
问题: RAG中,有时,最合适的答案不一定排在检索的最前面 user_query "how safe is llama 2" search_results vector_db.search(user_query, 5)for doc in search_results[documents][0]:print(doc"\n")response bot.chat(user_qu…...
7.2 奇异值分解的基与矩阵
一、奇异值分解 奇异值分解(SVD)是线性代数的高光时刻。 A A A 是一个 m n m\times n mn 的矩阵,可以是方阵或者长方形矩阵,秩为 r r r。我们要对角化 A A A,但并不是把它化成 X − 1 A X X^{-1}A X X−1AX 的形…...
Windows控制台函数:控制台输出函数WriteConsoleA()
目录 什么是 WriteConsoleA? 函数签名 参数详解 返回值 一个最简单的例子 跟 ReadConsoleA 对比 再试一个有趣的例子 为什么传地址给 lpNumberOfCharsWritten? 注意事项 什么是 WriteConsoleA? WriteConsoleA 是一个 Windows API 函…...
采用内存局部性分配有什么好处?
内存分配时的局部性分配(Locality of Allocation)是指将相关的内存对象分配在相邻或相近的内存区域中。这种分配策略在现代计算机系统中具有显著的好处,主要体现在以下几个方面: 1. 提高缓存命中率 现代计算机系统依赖于多级缓存…...
【Dubbo+Zookeeper】——SpringBoot+Dubbo+Zookeeper知识整合
🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL࿰…...
使用阿里云操作系统控制台排查内存溢出
引言 操作系统控制台是阿里云最新推出的一款智能运维工具,专为提升运维效率、优化服务器管理而设计。它集成了多种运维管理功能,包括操作系统助手、插件管理器以及其他实用工具,为用户提供一站式的运维解决方案。无论是个人开发者还是企业运…...
3.3.2 Proteus第一个仿真图
文章目录 文章介绍0 效果图1 新建“点灯”项目2 添加元器件3 元器件布局接线4 补充 文章介绍 本文介绍:使用Proteus仿真软件画第一个仿真图 0 效果图 1 新建“点灯”项目 修改项目名称和路径,之后一直点“下一步”直到完成 2 添加元器件 点击元…...
MyBatis-Plus 与 Spring Boot 的最佳实践
在现代 Java 开发中,MyBatis-Plus 和 Spring Boot 的结合已经成为了一种非常流行的技术栈。MyBatis-Plus 是 MyBatis 的增强工具,提供了许多便捷的功能,而 Spring Boot 则简化了 Spring 应用的开发流程。本文将探讨如何将 MyBatis-Plus 与 Spring Boot 进行整合,并分享一些…...
深入了解Linux —— 调试程序
前言 我们已经学习了linux下许多的工具,vim、gcc、make/makefile等; 已经能够在linux写代码,并且进行编译运行,让程序在linux下跑起来。 但是,如果我们在写代码的时候遇见了错误;但是我们并不知道错误在哪&…...
Hive-优化(语法优化篇)
列裁剪与分区裁剪 在生产环境中,会面临列很多或者数据量很大时,如果使用select * 或者不指定分区进行全列或者全表扫描时效率很低。Hive在读取数据时,可以只读取查询中所需要的列,忽视其他的列,这样做可以节省读取开销…...
物联网(Internet of Things, IoT)中的网络层简介
物联网(Internet of Things, IoT)中的网络层是物联网架构中的关键组成部分,负责设备之间的数据传输和通信。网络层的主要任务是将感知层(传感器、设备等)收集到的数据通过互联网或其他通信网络传输到应用层(数据处理和分析平台)。以下是物联网网络层的知识简介: 1. 物联…...
C++ 提供了多种数据类型组合方式
C 提供了多种数据类型组合方式,允许开发者将基本类型组合成更复杂的数据结构,以满足不同场景的需求。以下是主要的组合方式及其示例: 1. 数组(Array) 同类型元素的集合,可以是静态或动态。 int staticArr…...
八字排盘宝 2025.1.8 | 多模式排盘工具,精准解析八字信息,轻量易用
八字排盘宝是一款轻量高效的排盘工具,实现多模式排盘功能,界面简洁易用,适合命理爱好者和专业人士。支持多种排盘方式,精准解析八字信息,提供快速、便捷的命理分析体验,是日常排盘和命理学习的得力助手。 …...
MySQL面试篇——性能优化
MySQL性能优化 在MySQL中,如何定位慢查询 慢查询表象:页面加载过慢、接口压测响应时间过长(超过1s)。造成慢查询的原因通常有:聚合查询、多表查询、表数据量过大查询、深度分页查询 方案一:开源工具 调试工…...
c#财务软件专业版企业会计做账软件财务管理系统软件
本软件为绍兴客户开发的仿某碟财务软件专业版 功能:可以按会计科目做账录入会计凭证、结转损益、期末结账、拉资产负债表 github下载:https://github.com/oyangxizhe/financial.git...
常见 JVM 工具介绍
1. jps(Java Virtual Machine Process Status Tool) 功能:列出当前用户的所有 Java 进程及其 PID。 常用场景:快速定位目标 Java 应用的进程 ID。 常用命令: bash复制 jps -l # 显示主类全名 jps -v # 显示 JVM 启…...
【含文档+PPT+源码】Python爬虫人口老龄化大数据分析平台的设计与实现
项目介绍 本课程演示的是一款Python爬虫人口老龄化大数据分析平台的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Python学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本…...
生成对抗网络(GAN)原理与应用
目录 一、引言 二、GAN的基本原理 (一)生成器(Generator)的工作机制 (二)判别器(Discriminator)的工作机制 (三)对抗训练的过程 三、GAN在AIGC生图中的应…...
Linux安装升级docker
Linux 安装升级docker Linux 安装升级docker背景升级停止docker服务备份原docker数据目录移除旧版本docker安装docker ce恢复数据目录启动docker参考 安装找到docker官网找到docker文档删除旧版本docker配置docker yum源参考官网继续安装docker设置开机自启配置加速测试 Linux …...
clickhouse源码分析
《ClickHouse源码分析》 当我们谈论数据库时,ClickHouse是一个不容忽视的名字。它是一个用于联机分析处理(OLAP)的列式数据库管理系统(DBMS),以其快速的数据查询能力而闻名。对于想要深入了解这个高效工具…...
