第六次CCF-CSP认证(含C++源码)
第六次CCF-CSP认证
- 数位之和(easy)
- 思路及AC代码
- 遇到的问题
- 开心消消乐(easy)
- 思路及AC代码
- 画图(mid)
- 思路及AC代码
数位之和(easy)

题目链接
思路及AC代码
既然题目要求我们输出各位数字之和,那么我们之间把这些个位 十位…上的数拿到不就行了,一开始我还想着写一个函数去搞到这个输入n的每一位,返回一个数组,但是首先我们不知道传进来的数字是个几位数,其次就算知道也挺麻烦的,我后来想了一下,我直接把这个数搞成字符串不就行了吗,这样 这个数就不是一个整型,一个整体,而是刚刚好是我需要的 由若干个数字组成的字符串,ok,代码来咯:
#include <bits/stdc++.h>
using namespace std;
int main()
{string n;cin>>n;int res=0;for(auto c:n){res+=c-'0';}cout<<res<<endl;return 0;
}
遇到的问题

开心消消乐(easy)

题目链接
思路及AC代码
对于矩阵中的每个元素 s[i][j],使用四个变量 left、right、up 和 under 分别记录该元素向左右上下四个方向扩展的边界位置。
初始化 left 和 right 为当前列 j,up 和 under 为当前行 i。
使用四个 while 循环分别向左右上下四个方向扩展,直到遇到不同的数字或超出矩阵边界为止。
计算横向连续相同数字的长度为 right - left - 1,纵向连续相同数字的长度为 under - up - 1。
如果横向或纵向的连续长度大于等于 3,则将 p[i][j] 标记为 true,表示该位置可以消除;否则标记为 false。
#include <bits/stdc++.h>
using namespace std;
const int N =33;//多开几个
int s[N][N];
bool p[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=0;i<n;i++){for(int j=0;j<m;j++){int left=j,right=j,up=i,under=i;int x=s[i][j];//目前的位置while(left>=0 && s[i][left]==x) left--;while(right<m && s[i][right]==x) right++;while(up>=0 && s[up][j]==x) up--;while(under<n && s[under][j]==x) under++;//由某个点向四周扩展p[i][j]=right-left-1>=3 || under-up-1>=3;//如果相同数字长度大于等于3则标记为可以消除//下面是对这行代码的分步骤解释}}、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
//解释:// 计算左右方向相同数字的连续长度int leftRightLength = right - left - 1;// 计算上下方向相同数字的连续长度int upUnderLength = under - up - 1;// 判断左右或上下方向的连续长度是否大于等于 3bool canEliminate = leftRightLength >= 3 || upUnderLength >= 3;// 将判断结果存储到状态数组 p 中p[i][j] = canEliminate;
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(p[i][j]){cout<<0<<' ';}else{cout<<s[i][j]<<' ';}}cout<<endl;}return 0;
}
画图(mid)

题目链接
思路及AC代码
分析:
给定一个 m * n 的画布,初始画布上每个位置用点来填充 可以把每一个方块理解为一个像素
这题就两种操作(输入):
操作 0(画线):在画布上画线段,水平线段用 - 表示,垂直线段用 | 表示,线段交叉处用 + 表示。
操作 1(染色):从指定位置开始进行填充操作,将该位置及其连通区域(不跨越线段)填充为指定字符。
思路
画线段操作:对于操作 0,输入两个端点坐标,将两点之间的线段绘制在画布上。若线段交叉,交叉处标记为 +。
填充操作:对于操作 1,使用深度优先搜索(DFS)算法从指定位置开始填充,遇到线段则停止填充。(dfs如果有问题就去看一下我之前的文章迷宫问题)
下面这是yxc课上的代码 我用AI生成注释后供大家参考:
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 110;int n, m, Q;//Q表示询问次数
char g[N][N]; // 存储图形的二维数组,记录每个位置的字符
bool st[N][N]; // 标记数组,用于深度优先搜索中记录对应位置是否已访问过
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1}; // 定义上下左右四个方向的坐标偏移量 类似迷宫问题// 深度优先搜索函数,用于填充颜色
// x, y:当前处理的坐标位置;c:要填充的目标字符
void dfs(int x, int y, char c) {st[x][y] = true; // 标记当前位置已访问,避免重复处理g[x][y] = c; // 将当前位置的字符设置为目标填充字符for (int i = 0; i < 4; i++) { // 遍历四个方向(上、右、下、左)int a = x + dx[i], b = y + dy[i]; // 计算相邻位置的坐标// 检查相邻位置是否在图形范围内,且未被访问过if (a >= 0 && a < m && b >= 0 && b < n && !st[a][b]) {// 若该位置是线条字符('-'、'|'、'+'),则不进行填充if (g[a][b] == '-' || g[a][b] == '|' || g[a][b] == '+') continue;dfs(a, b, c); // 递归处理相邻位置,实现颜色填充}}
}int main() {cin >> m >> n >> Q; // 输入图形的行数m、列数n,以及操作次数Q// 初始化图形数组,将所有位置设置为默认字符'.'for (int i = 0; i < m; i++)for (int j = 0; j < n; j++)g[i][j] = '.';while (Q--) { // 循环处理每一次操作int op;cin >> op;if (op == 0) { // 画矩形操作int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;// 调整坐标,确保x1 <= x2,y1 <= y2if (x1 > x2) swap(x1, x2);if (y1 > y2) swap(y1, y2);// 遍历矩形区域内的所有位置for (int i = x1; i <= x2; i++) {for (int j = y1; j <= y2; j++) {auto &t = g[i][j]; // 取当前位置字符的引用,方便修改// 处理矩形边界的特殊字符情况(将交叉处设为'+')if (x1 == x2 && t == '-' || y1 == y2 && t == '|' || t == '+') t = '+';else { // 根据矩形是横线还是竖线,设置对应字符if (x1 == x2) t = '|'; // 竖线矩形if (y1 == y2) t = '-'; // 横线矩形}}}} else { // 填充操作(op == 1)int x, y;char c;cin >> x >> y >> c;memset(st, 0, sizeof st); // 重置访问标记数组dfs(x, y, c); // 调用深度优先搜索进行颜色填充}}// 输出图形,注意此处进行了坐标转换(行列交换)for (int i = n - 1; i >= 0; i--) {for (int j = 0; j < m; j++)cout << g[j][i]; // 按转换后的坐标输出字符cout << endl; // 每行输出结束后换行}return 0;
}
相关文章:
第六次CCF-CSP认证(含C++源码)
第六次CCF-CSP认证 数位之和(easy)思路及AC代码遇到的问题 开心消消乐(easy)思路及AC代码 画图(mid)思路及AC代码 数位之和(easy) 题目链接 思路及AC代码 既然题目要求我们输出各位…...
SpringBoot 如何调用 WebService 接口
前言 调用WebService接口的方式有很多,今天记录一下,使用 Spring Web Services 调用 SOAP WebService接口 一.导入依赖 <!-- Spring Boot Web依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId…...
算法 之 树形dp 树的中心、重心
文章目录 重心实践题目小红的陡峭值 在树的算法中,求解树的中心和重心是一类十分重要的算法 求解树的重心 树的重心的定义:重心是树中的一个节点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点…...
Docker 配置镜像源
》》Daemon {"registry-mirrors": ["https://docker.1ms.run","https://docker.xuanyuan.me"] }》》》然后在重新 docker systemctl restart docker...
Linux 离线部署Ollama和DeepSeek-r1模型
都在复制粘贴联网状态下linux部署deepseek,离线状态下需要下载Ollama和DeepSeek模型,然后将下载包上传到linux中。 1、下载Ollama https://github.com/ollama/ollama/releases 注意:如果CentOS7建议安装V0.5.11版本,V0.5.13需要…...
SQLAlchemy系列教程:如何执行原生SQL
Python中的数据库交互提供了高级API。但是,有时您可能需要执行原始SQL以提高效率或利用数据库特定的特性。本指南介绍在SQLAlchemy框架内执行原始SQL。 在SQLAlchemy中执行原生SQL SQLAlchemy虽然以其对象-关系映射(ORM)功能而闻名ÿ…...
RuleOS:区块链开发的“新引擎”,点燃Web3创新之火
RuleOS:区块链开发的“新引擎”,点燃Web3创新之火 在区块链技术的浪潮中,RuleOS宛如一台强劲的“新引擎”,为个人和企业开发去中心化应用(DApp)注入了前所未有的动力。它以独特的设计理念和强大的功能特性&…...
【编译器】VSCODE烧录ESP32-C3——xiaozhi智能聊天机器人固件
【编译器】VSCODE烧录ESP32-C3——xiaozhi智能聊天机器人固件 文章目录 [TOC](文章目录) 前言一、方法一:使用固件烧录工具1. 安装CH340驱动2. 打开FLASH_DOWNLOAD文件3. 选择芯片类型和烧录方式4. 选择烧录文件5. 参数配置 二、方法二:VSCODE导入工程1.…...
设计模式文章汇总-Golang语言实现
Golang学习笔记_27——单例模式 Golang学习笔记_28——工厂方法模式 Golang学习笔记_29——抽象工厂模式 Golang学习笔记_30——建造者模式 Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 Golang学习笔记_33——桥接模式 Golang学习笔记_34——组合模式 Gola…...
显式 GC 的使用:留与去,如何选择?
目录 一、什么是显式 GC? (一) 垃圾回收的基本原理 (二)显式 GC 方法和行为 1. System.gc() 方法 2. 显式 GC 的行为 (三)显式 GC 的使用场景与风险 1. JVM 如何处理显式 GC 2. 显式 GC…...
SpringMVC概述以及入门案例
目录 SpringMVC概述 为什么需要Spring MVC? SpringMVC入门 工作流程分析 SpringMVC概述 SpringMVC技术与Servlet技术功能等同,均属于Web层开发技术。SpringMVC是一种基于java实现MVC模型的轻量级Web框架。 为什么需要Spring MVC? 在传统J…...
5. 前后端实现文件上传与解析
1. 说明 在实际开发中,比较常见的一个功能是需要在前端页面中选择系统中的某个文件上传到服务器中进行解析,解析后的文件内容可以用来在服务器中当作参数,或者传递给其它组件使用,或者需要存储到数据库中。所以本文就提供一种方式…...
⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐
⭐LeetCode周赛 3468. 可行数组的数目——暴力与数学⭐ 示例 1: 输入:original [1,2,3,4], bounds [[1,2],[2,3],[3,4],[4,5]] 输出:2 解释: 可能的数组为: [1, 2, 3, 4] [2, 3, 4, 5] 示例 2: 输入&…...
javaEE初阶————多线程进阶(2)
今天来继续带大家学习多线程进阶部分啦,今天是最后一期啦,下期带大家做一些多线程的题,我们就可以开始下一个环节啦; 1,JUC(java.util.concurrent)的常见类 1)Callable 接口 我们之…...
Java 虚拟机优化指南:CMS垃圾回收器参数调优与性能监控工具详解
Java 虚拟机优化指南:CMS垃圾回收器参数调优与性能监控工具详解 引言 在高并发、大流量的企业级Java应用中,JVM参数的调优对系统性能至关重要。合理的JVM配置不仅能提高应用响应速度,还能减少垃圾回收造成的停顿时间,提升用户体…...
maven无法解析插件 org.apache.maven.plugins:maven-jar-plugin:3.4.1
解决流程 1.修改maven仓库库地址 2.删除本地的maven仓库 maven插件一直加载有问题: 无法解析插件 org.apache.maven.plugins:maven-jar-plugin:3.4.1 开始以为maven版本有问题,重装了maven,重装了idea工具。结果问题还是没解决。研究之后发现…...
Android Studio右上角Gradle 的Task展示不全
Android Studio 版本如下:Android Studio lguana|2023.21, 发现Gradle 的Tasks阉割严重,如下图,只显示一个other 解决方法如下:**Setting>Experimental>勾选Configure all gradle tasks during Gradle Sync(this can make…...
UDP协议 TCP协议(格式 超时重传 滑动窗口 拥塞控制...)
UDP协议 格式 UDP协议头部格式由8个字节组成,由4个2字节大小的字段组成。 源端口(Source Port,16 位): 发送端的端口号,标识数据从哪个端口发出。如果不需要,则可以填 0。 目标端口࿰…...
爱普生温补晶振 TG5032CFN高精度稳定时钟的典范
在科技日新月异的当下,众多领域对时钟信号的稳定性与精准度提出了极为严苛的要求。爱普生温补晶振TG5032CFN是一款高稳定性温度补偿晶体振荡器(TCXO)。该器件通过内置温度补偿电路,有效抑制环境温度变化对频率稳定性的影响&#x…...
今日头条文章爬虫教程
今日头条文章爬虫教程 随着互联网的发展,新闻资讯类平台如今日头条积累了海量的数据。对于数据分析师、研究人员等群体来说,获取这些数据进行分析和研究具有重要的价值。本文将介绍如何使用Python编写爬虫,爬取今日头条的文章数据。 一、准…...
【网络安全工程】任务11:路由器配置与静态路由配置
目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用:通过路由表进行数据的转发。 2、交换机的作用:通过学习和识别 MAC 地址,依据 M…...
Compose 实践与探索二 —— 状态订阅与自动更新1
1、自定义 Composable 为什么所有组件都要加 Composable 注解才可以使用? 这是因为 Compose 需要通过 Compose 的编译器插件(Compose Compiler Plugin)在组件函数中增加一些参数,这些参数在调用时有用。通过编译器增加这些参数&…...
linux下文件读写操作
Linux下,文件I/O是操作系统与文件系统之间进行数据传输的关键部分。文件I/O操作允许程序读取和写入文件,管理文件的打开、关闭、创建和删除等操作。 1. 文件描述符 在Linux中,每个打开的文件都由一个文件描述符来表示。文件描述符是一个非负…...
嵌入式学习第二十四天--网络 服务器
服务器模型 tcp服务器: socket bind listen accept recv/send close 1.支持多客户端访问 //单循环服务器 socket bind listen while(1) { accept while(1) { recv/send } } close 2.支持多客户端同时访问 (并发能力) 并发服务器 socket bind …...
Uniapp组件 Textarea 字数统计和限制
Uniapp Textarea 字数统计和限制 在 Uniapp 中,可以通过监听 textarea 的 input 事件来实现字数统计功能。以下是一个简单的示例,展示如何在 textarea 的右下角显示输入的字符数。 示例代码 首先,在模板中定义一个 textarea 元素ÿ…...
【Java 面试 八股文】计算机网络篇
操作系统篇 1. 什么是HTTP? HTTP 和 HTTPS 的区别?2. 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?3. 如何理解UDP 和 TCP? 区别? 应用场景?3.1 TCP 和 UDP 的特点3.2 适用场景 4. 如何理解TCP/IP协议?5. DNS协议 是什么?说说DNS 完整的查询…...
Webservice创建
Webservice创建 服务端创建 3层架构 service注解(commom模块) serviceimpl(server) 服务端拦截器的编写 客户端拦截器 客户端调用服务端(CXF代理) 客户端调用服务端(动态模式调用&a…...
使用VS Code remote ssh进行远程开发的笔记
本文是在VS Code中使用 remote ssh 进行开发的笔记。 安装插件 打开VS Code,在扩展区找到remote相关插件,安装之。下图中红色框出来的是已经安装了的插件(圆圈处即为Remote Explorer)。 实践 连接服务器 新建连接:…...
C语言每日一练——day_3(快速上手C语言)
引言 针对初学者,每日练习几个题,快速上手C语言。第三天。(会连续更新) 采用在线OJ的形式 什么是在线OJ? 在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用…...
Linux基本操作指令4
1、查看Ubuntu的版本 lsb_release -a 2、在 Ubuntu 下安装 OpenGL Library sudo apt-get install libglu1-mesa-dev 3、终止当前运行的进程 Ctrl C//默认情况 Ctrl Shift C//若修改了复制快捷键为CtrlC的情况 4、快速打开终端 CtrlAltT 5、关闭终端 Ctrl Shift W…...
