CSP 201312-5 I’m stuck! 两次BFS

Deepseek接入QQ机器人:实现拟人化概率回复的完整指南 大语言模型API正在快速改变即时通讯工具的交互方式。通过标准化的OpenAI兼容接口,开发者可以将Deepseek等AI服务嵌入到QQ机器人等IM场景中,实现自然语言对话能力。其核心原理在于事件驱动架构:消息接收层通过OneBot协议获取群聊内容,业务层利用概率过滤与冷却机制控制回复节奏,再由大模型生成拟人化文本。这种设计不仅避免了机器人刷屏,还能通过系统提示词塑造性格,营造真实的社群陪伴体验。适用于粉丝群互动、内容订阅、小规模客服等场景,同时支持多群独立配置、关键词加权回复及上下文记忆扩展。在实际工程中, 阅读详情

试题编号: 201312-5
试题名称: I’m stuck!
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
  给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思:
  '#': 任何时候玩家都不能移动到此方格;
  '+': 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;
  '-': 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非'#'方格移动一格;
  '|': 当玩家到达这一方格后,下一步可以向上下两个方向相邻的一个非'#'方格移动一格;
  '.': 当玩家到达这一方格后,下一步只能向下移动一格。如果下面相邻的方格为'#',则玩家不能再移动;
  'S': 玩家的初始位置,地图中只会有一个初始位置。玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格;
  'T': 玩家的目标位置,地图中只会有一个目标位置。玩家到达这一方格后,可以选择完成任务,也可以选择不完成任务继续移动。如果继续移动下一步可以向上下左右四个方向相邻的任意一个非'#'方格移动一格。
  此外,玩家不能移动出地图。
  请找出满足下面两个性质的方格个数:
  1. 玩家可以从初始位置移动到此方格;
  2. 玩家不可以从此方格移动到目标位置。
输入格式
  输入的第一行包括两个整数R 和C,分别表示地图的行和列数。(1 ≤ R, C ≤ 50)。
  接下来的R行每行都包含C个字符。它们表示地图的格子。地图上恰好有一个'S'和一个'T'。
输出格式
  如果玩家在初始位置就已经不能到达终点了,就输出“I'm stuck!”(不含双引号)。否则的话,输出满足性质的方格的个数。
样例输入
5 5
--+-+
..|#.
..|##
S-+-T
####.
样例输出
2
样例说明
  如果把满足性质的方格在地图上用'X'标记出来的话,地图如下所示:
  --+-+
  ..|#X
  ..|##
  S-+-T
  ####X

这个题由于数据量特别小所以有些简单,最大50*50的数组,用两次BFS复杂度在n^2的数量级2500*2500<<10^8.



代码写的有些糙,因为刚开始没想到这么简单用的简单的方法,但是可能逻辑上存在一些漏洞,一直是20分,于是才发现只有50行…………

#include <iostream>
#include<algorithm>
#include<queue>
#include<string.h>
bool mazes[100][100];
using namespace std;
int maze1[100][100];
bool mazet[100][100];
int M,N;
int i,j;
int sx,sy,tx,ty;
struct zuobiao{
zuobiao zuobiaos[4]{zuobiao(-1,0),zuobiao(1,0),zuobiao(0,-1),zuobiao(0,1)};
zuobiao(int x,int y):i(x),j(y){}
};
bool bfss(int x,int y){
que.push(zb);
zuobiao zb(x,y);
queue<zuobiao>que;
mazes[x][y]=1;
while(!que.empty())
switch (maze1[tmpi][tmpj])
{
zb=que.front();
que.pop();
int tmpi=zb.i,tmpj=zb.j;
{
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
case 1:
for(int i=0;i<4;i++)
{
if(!mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
{
mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
{
break;
zb.i=tmpi+zuobiaos[i].i;
zb.j=tmpj+zuobiaos[i].j;
}
que.push(zb);
} }
{
case 2:
for(int i=2;i<4;i++)
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
{
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
if(!mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
{
zb.i=tmpi+zuobiaos[i].i;
zb.j=tmpj+zuobiaos[i].j;
que.push(zb);
}
}
}
{
break; case 3:
for(int i=0;i<2;i++)
mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
{
if(!mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
{
zb.i=tmpi+zuobiaos[i].i;
que.push(zb);
zb.j=tmpj+zuobiaos[i].j;
} }
{
}
break;
case 4:
for(int i=1;i<2;i++)
mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
{
if(!mazes[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
memset(mazet,0,sizeof(mazet));
{
zb.i=tmpi+zuobiaos[i].i;
zb.j=tmpj+zuobiaos[i].j;
que.push(zb);
}
}
}
return true;
break; }
if(mazes[tx][ty])
} {
zuobiao zb(x,y);
} else
return false;
}
bool bfst(int x,int y)
{ queue<zuobiao>que;
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
mazet[x][y]=1;
que.push(zb);
while(!que.empty())
{
zb=que.front();
int tmpi=zb.i,tmpj=zb.j;
que.pop();
case 1:
switch (maze1[tmpi][tmpj])
{
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
for(int i=0;i<4;i++)
{ {
que.push(zb);
if(!mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
{
zb.i=tmpi+zuobiaos[i].i;
}
zb.j=tmpj+zuobiaos[i].j;
} }
mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
break;
case 2:
for(int i=2;i<4;i++)
{
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
{
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
if(!mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
{ zb.i=tmpi+zuobiaos[i].i;
if(!mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
zb.j=tmpj+zuobiaos[i].j;
que.push(zb);
}
}
}
{
break; case 3:
for(int i=0;i<2;i++)
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
{
tmpj+zuobiaos[i].j>=0&&tmpj+zuobiaos[i].j<=N)
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
{
mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
zb.i=tmpi+zuobiaos[i].i;
que.push(zb);
zb.j=tmpj+zuobiaos[i].j;
} }
{
}
break;
case 4:
for(int i=1;i<2;i++)
if(!mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]&&
if(tmpi+zuobiaos[i].i>=0&&tmpi+zuobiaos[i].i<=M&&
{
memset(mazes,0,sizeof(mazes));
maze1[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]!=0)
{
mazet[tmpi+zuobiaos[i].i][tmpj+zuobiaos[i].j]=1;
zb.i=tmpi+zuobiaos[i].i;
}
zb.j=tmpj+zuobiaos[i].j;
que.push(zb);
return 1;
}
}
break;
} }
if(mazet[tx][ty]) else
return 0;
} int main() {
memset(maze1,0,sizeof(maze1));
memset(mazet,0,sizeof(mazet));
sx=i;
char tmp;
cin>>M>>N;
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
cin>>tmp;
{
switch(tmp)
case '#':
case '+':
maze1[i][j]=0;
break;
maze1[i][j]=2;
maze1[i][j]=1;
break;
break;
case '-': break;
case '|':
maze1[i][j]=3;
case 'S':
case '.':
maze1[i][j]=4;
break;
}
sy=j;
maze1[i][j]=1;
break;
tx=i;
case 'T':
ty=j;
break;
maze1[i][j]=1;
} } }
int sum=0;
if(!bfss(sx,sy))
{
cout<<"I'm stuck!";
return 0; }
if(mazes[i][j])
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{ {
}
if(!bfst(i,j))
{
}
sum++; }
return 0;
} cout<<sum;


【1】Java 部分笔试题解析 解析A.abstract关键字应该放在class关键字之前。C.抽象方法不能有方法体。D缺少了class关键字。 阅读详情

相关推荐

终端以太网接入Internet实验

实验过程: 1.布局 2.连接 3.配置Route0和Route1 4.配置RIP 5.static: 6.查看Route0,Route1的路由表: 7.完成PC2和server0 IP地址,子网掩码和默认网关地址的配置: 8.命令行: 9.启动PC0桌面下的PPPoe宽带连接程序: 10.启动PC1桌面下的PPPoe宽带连接程序: 11.验证PC0和PC2的ICMP报文传输过程 12.验证PC1和server0的ICMP报文传输过程 关键命令说明

chaojidagouzi的博客 4083

【win11 cuda12.0安装tensorflow-gpu】

win11 cuda 12.0 安装 tensorflow-gpu

weixin_36299320的博客 3010

CSP考试 2013年12月第5题 I’m stuck! C语言实现

#include #include //分别从S,T开始进行DFS深度优先算法 //使用两个DFS //60分 修改版 //如果玩家在初始位置就已经不能到达终点了,就输出“I'm stuck!”(不含双引号)。 //正确 100 // 5 5 // --+-+ // ..|#. // ..|## // S-+#T // ####. // I'm stuck! // 5 5 //

woniupengpeng的专栏 1126

上下文理解的AI增强方案:AI应用架构师的架构洞察

本文将从AI应用架构师的视角,深入探讨“上下文理解”的技术本质、核心挑战,以及一套可落地的上下文增强架构方案。我们会拆解上下文理解的底层需求,分析架构设计中的关键决策,并通过具体案例展示如何构建一个能“记住过去、理解现在、预测未来”的AI系统。三个维度:上下文的内容范围(短期/中期/长期)、数据类型(文本/结构化/多模态)、技术挑战(窗口限制/信息过载/跨会话一致性);三种架构模式:分层上下文存储(热/冷数据分离)、上下文路由(按需筛选)、动态压缩(适配模型窗口);四个关键组件。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 220

基于51单片机的简易计算器设计(原理图+仿真+源代码+参考论文)

本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。

u012759563的博客 7705

CCF CSP 201312-5 I’m stuck!

试题编号: 201312-5 试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述:   给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思:   '#': 任何时候玩家都不能移动到此方格;   '+': 当玩家到达这一方格后,...

Yuhan的博客 340

ethernet eth0: Could not attach to PHY

整个流程看下来就是MAC connect PHY的过程失败了,失败的具体原因根据config_init,上图(bcm54xx_config_init) ,从此方向入手去定位原因;我这里的问题是has_gmac4没有置1,根据 has_gmac4: uses GMAC4 core.按照上面的调用逻辑,添加了部分打印,定位到__phy_read接口返回失败。stmmac_mdio_read 大部分都是linux的标准接口。最终取决于平台用的是哪家的phy,调用config_init。

无线互联&网络介绍 2703

CCS-CSP 2013-12 批次 题目5 I’m stuck!

题目描述 问题描述 给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-’, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思:   ‘#’: 任何时候玩家都不能移动到此方格;   ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#‘方格移动一格;   ‘-’: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非’#‘方格移动一格;   ‘|’: 当玩家到达这一方格后,下一步可以向上下两个方向相邻的一个非’#‘方格移动一格;   

JoeTwan 的博客 410

Java的API帮助文档

JDK帮助文档 SUN公司为JDK工具包提供了一整套文档资料,我们习惯上称之为JDK文档。 JDK文档中提供了Java中的各种技术的详细资料,以及JDK中提供的各种类的帮助说明。 JDk文档是Java语言的完整说明,大多数书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料 如何理解API:就当做是一个“字典”,“使用手册”,API就相当于是一个电子的帮助文档,可以帮我们查看JDK提供的类的信息,平时查看的时候可结合百度一起看。 官网下载: 1、登录Oracle官网(Oracl.

人生得意须尽欢 2万+

基于Jeecgboot3.9.0的flowable7.2.0流程增加一个OA请假单功能例子(二)

基于Jeecgboot3.9.0的flowable7.2.0流程增加一个OA请假单功能例子(二)

宁波阿成的博客 198

CSP-《I‘m stuck!》-感悟

I’m stuck!

si_ying的博客 437

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的体育赛事目标检测系统(Python+PySide6界面+训练代码)

本文详细介绍了一个基于YOLOv5/v6/v7/v8的体育赛事目标检测系统的设计与实现。系统采用先进的深度学习算法,结合PySide6图形界面,实现了对体育赛事中运动员、球类、裁判等多种目标的实时检测与跟踪。本文将全面阐述系统的架构设计、算法原理、训练流程、界面实现以及实际应用效果,并提供完整的代码实现。

YOLO 509

【CCF-CSP】201312-5 I’m stuck!(暴力bfs)

【CCF-CSP】201312-5 I’m stuck! 题目 给一个迷宫,50 * 50,S起点 T终点,每种符号代表下一步能走的方向,问满足以下条件的格子数: 能从S出发到达 从当前格子出发到达不了 T。 分析 迷宫很小,从一个点开始 BFS 最多 50 * 50,直接按照题目意思暴力 BFS 即可。 先找从 S 出发能够到达的点,再 BFS 检验这个点是否满足第二个条件。O(50 * 5...

Stormjing的博客 590

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

CCF CSP 201312-5 试题名称: I’m stuck!

#include<bits/stdc++.h> using namespace std; char maze[105][105]; bool visited[105][105]; int xx[10] = {1,-1,0,0}; int yy[10] = {0,0,1,-1}; int n,m; struct node{ int x; int y; }; vector<node> t; bool flag = false; void bfs(int x,int y,i

qq_43251559的博客 460

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

I’m stuck!

I’m stuck! 问题描述 试题编号: 201312-5 试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思:   '...

justDoIt 592

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

CCFCSP-201312-5-I’m stuck!

提交前忘记去掉freopen,为这个调试了整整一上午... 下午继续提交,老是超时,把所有STL元素都去掉之后,不超时了,不仅不超时,还快得一匹... 再精简一下代码就行了,刷题一时爽,一直刷一直爽 试题编号: 201312-5 试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述...

TriAlley的博客 518

【CCF-CSP】I’m stuck!

试题编号: 201312-5 试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思:   '#': 任何时候玩家都不能移动到此方...

feng_zhiyu的博客 701

CSP201312-5(I'm struck!)(Java 100分)

问题描述   给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-‘, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思:   ‘#’: 任何时候玩家都不能移动到此方格;   ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#’方格移动一格;   ‘-‘: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非’#’...

GeniusSoul 389

CCFCSP认证201312-5I’m stuck!满分题解(C++)

#include<iostream> #include<vector> using namespace std; const int maxmize=51; int r,c; typedef struct{ char site; int visited; vector<pair<int,int> > next; }node; node graph[maxmize][maxmize]; node rgraph[maxmize][maxmize]; ...

qq_34653042的博客 383

CCFI’m stuck!

真的stuck了!为什么只有80分 求大佬解答 写的繁琐点了 #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;stack&gt; #include&lt;cstdio&gt; using namespace std; char a[200][200]; int visit[200][200]; int visit1[20...

qq_40458569的博客 428

CSP_I'm stuck!

问题描述: 给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-’, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思:   ‘#’: 任何时候玩家都不能移动到此方格;   ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#‘方格移动一格;   ‘-’: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非’#‘方格移动一...

Vibrant 469

I'm stuck! 一篇小白题解

CCF 201312-5 I’m stuck (C++) *作为一个刚开始刷CCF、算法入门的小白,花了两天搞懂BFS(Breadth First Search 广度优先搜索)并查了几篇此题的write-up,最后写出来自己认为最合理的代码。 然而结果是错误,得分60. 希望有大佬告诉我哪里出问题了……改正过来才能放心地写题解qwq。 以及有不好的编程习惯也欢迎指出!* 问题描述   ...

resdust的博客 2794

CCF-CSP 201312-5 I‘m stuck! (python)

201312-5[I’m stuck!] 问题描述 问题描述 给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-’, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思:   ‘#’: 任何时候玩家都不能移动到此方格;   ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#‘方格移动一格;   ‘-’: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非’#‘方格移动一格;   ‘|’: 当玩家到达这一方格后,下一步可以向上下两个

xbr_1111的博客 359

CSP认证201312-5 I’m stuck![C++题解]:dfs、两次dfs

刷题

阿正的梦工坊 722

CCF 2013 12-5 I‘m stuck

CCF 2013 12-5 I’m stuck 9/5/2021 6:02:16 PM 题目 问题描述 给定一个R行C列的地图,地图的每一个方格可能是’#’, ‘+’, ‘-’, ‘|’, ‘.’, ‘S’, ‘T’七个字符中的一个,分别表示如下意思:   ‘#’: 任何时候玩家都不能移动到此方格;   ‘+’: 当玩家到达这一方格后,下一步可以向上下左右四个方向相邻的任意一个非’#‘方格移动一格;   ‘-’: 当玩家到达这一方格后,下一步可以向左右两个方向相邻的一个非’#‘方格移动一格;   ‘|’:

https://github.com/ZhaoyungZhang 204
上一篇: 关于201709CSP的总结
下一篇: C++集合的模板类 交并集
THU-xlj
博客等级 码龄11年 8粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值