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

万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!

万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!

在AI领域,大模型的发展正以前所未有的速度推进技术的边界。 北京时间4月19日凌晨,Meta在官网上官宣了Llama-3,作为继Llama-1、Llama-2和Code-Llama之后的第三代模型,Llama-3在多个基准测试中实现了全面领先,性能优于业界同类最先进的模型。 纵观Llama系列模型,从版本1到3,展示了大规模预训练语言模型的演进及其在实际应用中的显著潜力。这些模型不仅在技术上不断刷新纪录,更在商业和学术界产生了深远的影响。因此,对Llama模型不同版本之间的系统对比,不仅可以揭示技术进步的具体细节,也能帮助我们理解这些高级模型如何解决现实世界的复杂问题。 1、Llama进化史 本节将对每个版本的Llama模型进行简要介绍,包括它们发布的时间和主要特点。 1.1 Llama-1 系列 Llama-1 [1]是Meta在2023年2月发布的大语言模型,是当时性能非常出色的开源模型之一,有7B、13B、30B和65B四个参数量版本。Llama-1各个参数量版本都在超过1T token的语料上进行了预训训练,其中,最大的65B参数的模型在2,048张A100 80

TRAE vs Qoder vs Cursor vs GitHub Copilot:谁才是真正的“AI 工程师”?

引言:工具选择 = 成本 + 效率 + 风险 的综合权衡 2026 年,AI 编程工具已从“玩具”走向“生产主力”。但面对 TRAE、Qoder、Cursor、GitHub Copilot 等选项,开发者不仅要问: * 它能写 Rust 吗?支持中文需求吗? * 更要问:一个月多少钱?团队用得起吗?代码安全有保障吗? 本文将从 五大核心维度 深度剖析四大主流 AI IDE: 1. 核心理念与自主性 2. 多语言与跨生态支持能力 3. 工程化与交付闭环能力 4. 中文本地化与业务适配 5. 收费模式、定价策略与企业成本 帮你做出技术可行、经济合理、风险可控的决策。 一、核心理念:

Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 llm_json_stream 的鸿蒙化适配指南 - 掌控 LLM 流式 JSON 解析、大模型解析实战、鸿蒙级精密 AIGC 专家 在鸿蒙跨平台应用执行大型语言模型(LLM)的流式交互(如实时获取大模型生成的结构化 JSON 数据、处理非完整的 JSON 片段解析或是实现一个具备极致反馈速度的 AI 驱动表单)时,如果依赖传统的 jsonDecode,极易在处理“不完整字符串(Chunk)”、“语法中断”或“非预期的文本噪声”时陷入解析异常死循环。如果你追求的是一种完全对齐流式解析规范、支持实时恢复 JSON 结构且具备极致容错性能的方案。今天我们要深度解析的 llm_json_stream—

Copilot代理与网络配置全攻略(突破访问限制的终极方法)

第一章:Copilot代理与网络配置全攻略(突破访问限制的终极方法) 在使用 GitHub Copilot 的过程中,开发者常因网络策略或区域限制无法正常激活服务。通过合理配置代理与网络环境,可有效绕过此类问题,确保代码补全功能稳定运行。 配置本地代理服务器 为确保 Copilot 能够连接至远程 API,建议在本地部署 HTTP 代理服务。以下是一个基于 Node.js 的简易代理示例: // proxy-server.js const http = require('http'); const net = require('net'); // 创建 HTTP 代理服务器 const server = http.createServer((req, res) => { // 允许跨域请求 res.setHeader(