CCF-CSP第38次认证第二题——机器人复健指南(满分题解)

题目背景

西西艾弗岛某山脉深处出土了一台远古机器人,具体年代已不可考。初步修缮后,研究人员尝试操控机器人进行些简单的移动。

题目描述

整个实验场地被划分为 n×n个方格,从 (1,1) 到 (n,n) 进行编号。机器人只能在这些方格间移动,不能走出场地范围。 如下图所示,假设机器人当前位于 (x,y),那么接下来可以向周围八个方向跳跃移动(如果目标方格在场地范围内):

若机器人只能跳动不超过 k 步,场地内有多少方格(包括起始位置)可以抵达?

输入格式

从标准输入读入数据。

输入的第一行包含空格分隔的两个正整数 n 和 k,分别表示场地大小和跳动步数。

输入的第二行包含空格分隔的两个正整数 x 和 y,表示机器人的起始位置(保证位于场地内)。

输出格式

输出到标准输出。

输出一个整数,表示 k 步内可以抵达的方格总数。

样例1输入

4 1 1 1 

样例1输出

3 

样例2输入

4 2 1 1 

样例2输出

8 

样例2解释

如下图所示,初始位置、第一步和第二步跳跃抵达的位置总计为 8。

子任务

80% 的测试数据满足:k≤3;

全部的测试数据满足:n、k 均大于 0 且不超过 100。

题解

可以使用BFS或DFS进行搜索。在DFS实现中,步数作为递归函数的参数传递;而在BFS实现中,步数需要作为队列元素的附加参数存储。

实现细节

dx 和 dy 数组分别表示移动方向,st 数组用于记录访问状态,全局变量 cnt 统计已访问节点的数量。需要特别处理边界判断,同时统计的节点数包括所有经过的位置,而不仅仅是终点。

代码

#include<bits/stdc++.h> using namespace std; const int N=110; int n,k,x,y; int a[N][N]; bool st[N][N]; int dx[8]={1,2,1,2,-1,-2,-1,-2},dy[8]={2,1,-2,-1,2,1,-2,-1}; int cnt; void dfs(int x,int y,int num){ st[x][y]=true; cnt++; if(num==k)return; for(int i=0;i<8;i++){ int a=x+dx[i],b=y+dy[i]; if(a<1||a>n||b<1||b>n)continue; if(!st[a][b]){ dfs(a,b,num+1); } } } int main(){ cin>>n>>k>>x>>y; dfs(x,y,0); cout<<cnt; } 

Read more

2026四款AI 低代码集成实战

2026四款AI 低代码集成实战

一、引言: 作为一名常年打交道AI应用开发的程序员,近半年明显感觉到低代码AI平台的爆发式增长——越来越多团队不想重复造轮子,希望通过现成平台快速落地智能体、知识库问答这类应用。但市面上平台鱼龙混杂,有的侧重单一功能,有的看似全面却暗藏坑点,比如部署复杂、商用授权模糊、扩展性差等。 这次筛选了当前热度较高的四款工具:FastGPT(主打模型与知识库)、ToolLLM(专注自动化编排)、Langfuse(聚焦监控观测)、BuildingAI(一体化平台)。测评全程站在中立技术视角,不看营销噱头,只谈真实开发体验——从搭建简单问答应用,到部署企业级服务,逐一测试核心功能,记录踩坑过程与解决思路,最终给出不同场景下的选择建议。 二、测试环境(简述) 服务器配置:4核8G云服务器(Ubuntu 22.04 LTS),带宽10M;本地开发环境:MacBook Pro M2,16G内存。所有平台均优先采用Docker部署(官方推荐方式),测试用例统一为“搭建企业产品知识库问答应用”,包含模型接入、

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413)

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413)

Java 大视界 -- Java 大数据在智能家居设备联动与场景化节能中的应用拓展(413) * 引言: * 正文: * 一、技术基石:Java 大数据赋能智能家居的 “三位一体” 架构 * 1.1 架构全景图 * 1.2 核心技术栈选型与生产配置(附数据出处) * 1.3 核心数据模型(POJO 类,附表结构与业务含义) * 1.3.1 设备状态实体类(对应 ClickHouse 实时表) * 1.3.2 联动规则实体类(对应 MySQL 配置表) * 1.3.3 缺失工具类补充:SpringContextUtil(生产必用) * 二、核心场景 1:

【ZYNQ必学】PS-PL架构完全解析:从零理解ARM+FPGA融合设计(附实战案例)

【ZYNQ必学】PS-PL架构完全解析:从零理解ARM+FPGA融合设计(附实战案例) 📚 目录导航 文章目录 * 【ZYNQ必学】PS-PL架构完全解析:从零理解ARM+FPGA融合设计(附实战案例) * 📚 目录导航 * 概述 * 一、PS-PL架构基础概念 * 1.1 什么是PS和PL * 1.1.1 PS(处理系统)定义 * 1.1.2 PL(可编程逻辑)定义 * 1.1.3 PS vs PL对比 * 1.2 ZYNQ基本结构 * 1.2.1 ZYNQ-7000系列架构 * 1.2.2 ZYNQ-7000的整体架构 * 1.3

腾讯QQ官方炸场!OpenClaw一键建5个机器人,个人号直接上手|实战教程

腾讯QQ官方炸场!OpenClaw一键建5个机器人,个人号直接上手|实战教程

文章目录 * 前言 * 一、OpenClaw是个啥?你的"数字长工" * 二、为什么说这次QQ"炸场"了? * 三、实操环节:从0到1,手把手养出你的AI小弟 * 3.1 在QQ开放平台"造人" * 3.2 给机器人找个"肉身"(部署OpenClaw) * 方案A:云服务器一键部署(推荐新手) * 方案B:宝塔面板可视化安装(适合有服务器的站长) * 方案C:本地Docker部署(适合极客) * 3.3 关键的"认亲"三步走 * 3.4 加好友,