当前位置: 首页 > news >正文

19712数字接龙

数字接龙

屏幕截图 2026-03-15 084014

屏幕截图 2026-03-15 084031

屏幕截图 2026-03-15 084145

思路:

  1. dfs

  2. nxt[i][j]={-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}

  3. 判断下一步是否可以走:
    0°没有走过
    1°不越界
    2°是前一个数字(x+1)%K
    3°字典序
    4°不交叉
    只用判断斜着走可能出现交叉
    (-1,1)->判断(-1,0)和(0,1)是不是都走过
    (1,1)->判断(1,0)和(0,1)是不是都走过
    (1,-1)->判断(1,0)和(0,-1)是不是都走过
    (-1,-1)->判断(-1,0)和(0,-1)是不是都走过
    最后要检查,是不是所有格子都经过了一次

  4. (实际上,上述不交叉的判断有漏洞,是过分的剪枝,会去除一些可能正确的答案)

    比如:

    a[x][y]想走到a[x-1][y+1],即使a[x-1][y]a[x][y+1]都走过,也并不意味着两点之间直接相连(绕路)

    所以需要一个step[i][j],如果abs(step[x-1][y]-a[x][y+1])==1,则这两点直连

图解:

屏幕截图 2026-03-15 090655

代码:

int n,k,sx,sy,ex,ey;//startx,starty,endx,endy
int e[N][N],book[N][N],step[N][N],nxt[8][2]={{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1}};void dfs(string cs,int x,int y)//cs:current-string (x,y)当前所在坐标
{int tx,ty;char ch;int num=e[x][y];//当前位置的数字 if(x==ex&&y==ey){for(int i=0;i<n;++i){for(int j=0;j<n;++j){if(book[i][j]==0) return ;//没有经过所有格子-非法 }}cout<<cs;exit(0);}for(int i=0;i<8;++i){//遍历八个方向tx=x+nxt[i][0];ty=y+nxt[i][1];if(tx<0||ty<0||tx>=n||ty>=n) continue;//超界if(book[tx][ty]==0&&e[tx][ty]==(num+1)%k){//没访问 序列的数字连续0,1,2,...,k-1if(i%2==1){//东北 东南 西南 西北if(book[tx][y]==1&&book[x][ty]==1&&abs(step[tx][y]-step[x][ty])==1) continue;step[tx][ty]=step[x][y]+1;book[tx][ty]=1;ch=i+'0';dfs(cs+ch,tx,ty);step[tx][ty]=0;book[tx][ty]=0;				}else{//上 右 下 左step[tx][ty]=step[x][y]+1;book[tx][ty]=1;ch=i+'0';dfs(cs+ch,tx,ty);step[tx][ty]=0;book[tx][ty]=0;}}}
}int main()
{cin>>n>>k;sx=0,sy=0,ex=n-1,ey=n-1;for(int i=0;i<n;++i){for(int j=0;j<n;++j){cin>>e[i][j];}}book[sx][sy]=1;step[sx][sy]=0;if(e[sx][sy]!=0){//特判起点数字如果不是0-非法cout<<-1;return 0;}dfs("",sx,sy);cout<<-1;return 0;
}
http://www.jsqmd.com/news/480485/

相关文章:

  • uniapp-vue-微信小程序Python-flask基于微信小程序的摄影作品展览app
  • 第0013课 - 把键盘控制也装进魔法盒子
  • Day38日期对象的使用
  • 大型有机肥生产线服务商费用多少钱,河南建丰价格合理吗? - mypinpai
  • 【笔试真题】- 米哈游-2026.03.14
  • 分析2026年全自动有机肥生产线生产商哪家好,费用情况大揭秘 - 工业设备
  • RV1126 摄像头图像精度BSP调试全景分析
  • 聊聊2026年值得推荐的信息发布系统供应商,哪家性价比高 - 工业推荐榜
  • 剖析RV1126网络数据调试全流程
  • 2 行动与结果:别用“苦劳”感动自己
  • 全家健身不用凑|全家可用的家庭健身器材,老少皆宜,居家运动更省心 - 冠顶工业设备
  • 影墨·今颜小红书模型与卷积神经网络结合应用:图文内容一致性校验
  • 【雷达成像】太赫兹检测的缺陷特征提取及成像方法的设计与实现【含Matlab源码 15169期】
  • 盒马鲜生礼品卡这样回收,教你实现最高收益! - 团团收购物卡回收
  • 2026数控转塔冲床领域:哪些厂商在性价比上占优,LC-PC激光切割机/扭力同步折弯机/剪板机,转塔冲生产厂家排行 - 品牌推荐师
  • 多场耦合赋能电机降噪:基于ANSYS Maxwell与Workbench的永磁同步电机NVH仿真设计全解析
  • 闲置盒马鲜生礼品卡怎么办?一键回收秒变现金! - 团团收购物卡回收
  • 什么是商旅签证?一篇搞懂定义、用途与办理指南|出行必备常识 - 匠言榜单
  • 盒马鲜生礼品卡怎么回收?最新变现技巧详解! - 团团收购物卡回收
  • FBA 仓:亚马逊官方仓(头程 + 尾程)的生命周期的庖丁解牛
  • [Eloi Easy Round 2026] 与你相恋直到生命尽头 出题报告
  • 盒马鲜生礼品卡回收网站推荐:正规平台轻松变现! - 团团收购物卡回收
  • 盒马鲜生礼品卡回收攻略:快速变现的三大技巧! - 团团收购物卡回收
  • 计算机毕业设计springboot社区孤寡老人关怀平台 基于SpringBoot的社区独居老人关爱服务平台 基于SpringBoot的社区空巢老人智能照护系统
  • 计算机毕业设计springboot阳煤集团数字化煤厂管理系统 基于SpringBoot的煤炭企业智能仓储与物流管理平台 基于Java的煤矿供应链数字化运营系统
  • DCIM管理系统推动数据中心高效智能化运行与管理革新
  • 我发现动物也喜欢晒太阳,而且非常慵懒
  • Qwen2.5-72B-Instruct-GPTQ-Int4参数详解:RMSNorm/SwiGLU/GQA架构解析
  • 山东一卡通回收避坑指南:如何选择正规平台? - 团团收购物卡回收
  • 推荐下江苏参数化设计服务商|企业选型实用全指南 - 冠顶工业设备