poj2488--------------深搜(注意字典序)

poj2488题(骑士以马走日的方式走棋盘) A Knight’s Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40636 Accepted: 13807 DescriptionBackground The knight is getting bored of seeing the same black and white squares a 阅读详情

刚开始读题的时候不小心,认为只要深搜就ok了,交了之后一直wa。


看了discuss才知道读题不小心,原来是要按字典序顺序(刚开始有注意到那个陌生单词,不知道什么意思,就忽略了……>_<...没文化真可怕啊)。我把遍历节点的两层循环改为外层循环列,内层循环行,之后提交,依旧wa。


自后才想到对每个位置周围的可走的八个位置搜索是有先后顺序的,应该按照列值由小到大的顺序,改了之后ac了。


#include<stdio.h>
int a[30][30];
int vis[30][30];
int x[30], y[30];
int tx[10] = {-1, 1, -2, 2, -2, 2, -1, 1}, 
    ty[10] = {-2, -2, -1, -1, 1, 1, 2, 2};
int p, q, tmp;

int dfs(int i, int j, int step)
{
    x[step] = i;
    y[step] = j;
    vis[i][j] = 1;
    if(step == p*q)
        return 1;
    
    int px, py;
    for(int k=0; k<8; k++)
    {
        px = i + tx[k];
        py = j + ty[k];
        if(!vis[px][py] && px>=0 && px<p && py>=0 && py<q)
            if(dfs(px, py, step+1))
                return 1;         
    } 
    vis[i][j] = 0;
    return 0;
}

int solve()
{
    for(int k=0; k<30; k++) {
        for(int l=0; l<30; l++) {
            vis[k][l] = 0;    
        }        
    }
    for(int j=0; j<q; j++)
    {
        for(int i=0; i<p; i++)
        { 
            if(dfs(i, j, 1)) 
            {   return 1;   }   
        }        
    }    
    return 0;
}

int main()
{
    int n;
    scanf("%d", &n);
    for(int t=1; t<=n; t++)
    {     
        scanf("%d %d", &p, &q);
        int r = solve();
        printf("Scenario #%d:\n", t);
        if(r) {
            for(int i=1; i<=p*q; i++)
            {
                printf("%c%d", 'A'+y[i], x[i]+1);        
            }     
        } else {
            printf("impossible");       
        }
        printf("\n\n");
    }
    return 0;
}




poj2488——dfs深度优先遍历 poj 2488——dfs深度优先遍历 //给行数列数,求问能否遍历,给出字典序的一种遍历 立即下载

相关推荐

产品经理-面试题目--持续更新

答:面试官,你好,我叫XXX,来自于XXXX,我系统的学习过软件开发,也主动的积累了不少产品方面的实战经验,在学习期间,我自己独立的完成了2个深度项目,一个是仿抖音的短视频APP全流程设计,另外一个是电商后台系统的模块,通过这些项目,我不仅熟练使用Axure等工具做出高保真原型图和清晰的产品框架,也形成了数据驱动和用户优先的思维习惯,另外,我也注重拓展自己的能力边界,拿到了CAIE人工智能证书,我希望能把AI能力融入到产品场景,提升体验和效率,我非常喜欢产品工作带来的创造性和逻辑性,希望有机会加入贵公司。

m0_63966958的博客 957

[Java] POJ 2488

一、思路 枚举8个方向,题目要求按照字典序的方向进行数组的赋值。 由于列是字母,所以以列小的先枚举,然后列相同,就以行小的先枚举。比如图中B3 和 B5 先枚举。 //按照字典序 static int[] dx = {-1, 1, -2, 2, -2, 2, -1, 1}; static int[] dy = {-2, -2, -1, -1, 1, 1, 2, 2}; 利用dx...

Tizzi的博客 950

从零搭建VGGNet

在 forward 方法中实现了前向传播过程,包括卷积、激活、池化和平铺操作,最后通过全连接层得到分类结果。使用 torch.onnx.export 将模型导出为 ONNX 格式的文件 vgg.onnx。导出 ONNX:将模型导出为 ONNX 格式,便于在其他平台或框架中使用。定义 VGG 网络:构建了一个包含多个卷积层、池化层和全连接层的网络。使用 torch.save 将整个模型保存为 vgg.pth 文件。前向传播:对输入数据进行前向传播,得到输出结果。保存模型:将模型保存为 .pth 文件。

开源驱动,创造价值;坦诚清晰,快速失败;让复杂可计算。 521

poj2488骑士游历(java,c++)

A Knight’s Journey Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 60600 Accepted: 20722 Description Background The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey around the

qq_45880043的博客 951

使用DDR4控制器实现多通道数据读写

这种高带宽对于大量的数据的应用非常重要。对于Controller/PHY Mode 的选择,我们使用Controller + PHY模式,Xilinx UltraScale/UltraScale+等高端FPGA通常包含硬核PHY,选择Controller + PHY模式可直接利用硬核,降低功耗和延迟,并且此模式的开发更易上手。在Basic页面下,首先勾选上AXI4 Interface选项,我们选用的内存接口速度为2133MHz的ddr4芯片,由于双沿触发,频率为1066MHz,那么周期应为938ps。

weixin_38828382的博客 1364

SAP-FICO LSMW实战:批量导入财务凭证与固定资产主数据(AS91)的完整指南

本文详细介绍了SAP-FICO中LSMW工具在批量导入财务凭证与固定资产主数据(AS91)的完整流程与实战技巧。从基础概念、环境准备到财务凭证导入全流程,特别针对AS91历史资产导入的日期逻辑和关键字段映射提供了专项指南,并分享了常见错误排查与性能优化建议,帮助用户高效完成SAP数据迁移任务。

weixin_29230649的博客 505

A Knight's Journey

A - A Knight's Journey Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2488 Description Background  The knight is getting bor

CSUST_ACM的专栏 862

本地部署了qwen2.5:0.8b ,对接openclaw 后,电脑卡的要死

OpenClaw 强制 16k 上下文 + 无限历史 + Agent 调度,把 0.8b 压垮。按上面配置:轻量化 + 限历史 + 驻留显存,电脑立刻不卡。

专注于技术研发行业技术主要有AI人工智能视觉识别、物联网技术、电商平台、app原生技术、微信小程序、鸿蒙语言开发、办公企业oa、ERP等,致力于做东半球最优秀的程序员 978

hdu 1814 字典序最小的2sat(暴力深搜)

题意:      题意就是最基础的2sat,关系只有矛盾关系,然后二选一,关键是这个题目是输出字典序最小的那组解。 思路:      输出字典序最小,用强连通那个实现不了(起码没看到有人实现),其实我们可以直接暴力,我们可以给某个点染色,分成无色(W)红色(R)和蓝色(B)红色是我们要的答案,对于每一个点我们先尽可能的吧他的a染成红色,把他的~a染成蓝色,如果发现矛盾,就是出现a是蓝色的

天使也掉毛 807

Vue - 在纯 HTML 普通项目中实现组件化,让原生 html 项目支持引入 *.vue 组件 / 组件与组件间的互相引用等,完美解决了引入组件出现的跨域问题(保姆级详细教程,完整示例源码及插件)

html中使用vue组件,在HTML页面中引入vue组件,HTML界面利用http-vue-loader.js以组件方式引入vue文件,使用http-vue-loader引入组件出现报错,在html页面使用http-vue-loader插件引入组件报跨域错误,如何解决http-vue-loader引用组件时出现跨域问题,纯html原生web项目引入vue后如何实现组件引入,使用http-vue-loader插件控制台报错跨域,http-vue-loader跨域怎么办官方文档,html页面如何引入.vu

🏆 前端领域优质创作者 3907

西门子S7-1200PLC控制步进电机的组态编程和具体步骤

西门子S7-1200PLC控制步进电机的组态编程和具体步骤 硬件准备: 1) 一个S7-1214C DC/DC/DC,订货号:6ES7 214-1AG40-0XB0 2) 一个86系的步进电机+相应的驱动器 3) 一个20A的西门子24V电源(步进驱动器及plc电源) 4) Portal V15版本 组态及编程: 1) 创建一个验证项目,添加cpu( S7-1214C),双击“工艺对象”,选择“运动控制”的TO_PositioningAxis V6.0版本,如下图所示: 2) “确定”后,系统自动生成名

Robot_PLC_HMI_Automation 1万+

poj2488(深搜+剪枝)

题目链接:http://poj.org/problem?id=2488 通过此题,我学习到: 1.lexicographically 是字典序的,因此按照先字母后数字的原则,八个方向从左到右,从上到下的交替优先顺序,总是从左上角开始就好。 2.此题只要一个方案,因此可以设置flag,在第一次得到结果后(肯定是答案),设置flag,导致以后能够大量剪枝。 3.此题虽然每个格子用字母+数字的形...

GooTal的博客 529

Open-AutoGLM 实战:手把手教你用 AI 操作手机「喂饭教程」

Open-AutoGLM 是一个由智谱AI开源的手机操作智能体框架,由手机端智能助手框架Phone Agent和9B大小的模型AutoGLM-Phone-9B组成,借助ADB自动执行点击、滑动、输入等操作——用户只需用自然语言描述任务,系统便能自动规划并完成整个操作流程。

blues_C的博客 1267

POJ2488 骑士的旅程

POJ2488 骑士的旅程 题目描述 骑士一次又一次地看到相同的黑白方块而感到厌倦,并决定环游世界。每当骑士移动时,它是一个方向上的两个正方形和一个垂直于此的正方形。骑士的世界是他生活的棋盘。我们的骑士生活在棋盘上,棋盘面积比普通的8 * 8棋盘小,但它仍然是长方形的。你能帮助这个冒险骑士做出旅行计划吗 输入 找到一条路径,使骑士可以拜访每个广场一次。骑士可以在棋盘的任何正方形上开始和结束。 输出 输入在第一行中以正整数n开头。以下各行包含n个测试用例。每个测试用例由一行包含两个正整数p和q的行组成,

LXYDSF的博客 1807

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

POJ2488简单DFS

本题是一个比较基础的DFS问题,但是坑点也有很多 1.字典序输出 2.如何处理输出过程中的字母的输出问题 AC后的恍然大悟: 本题要求的是棋盘的所有位置都必须经过一遍,且搜索是无方向性的。所以无论从哪个点开始,我们都必须经过每一点一次。(因此深搜只需一次) 而字典序最小的当然是从最左上角开始咯,我们只需要从(1,1)点开始深搜使所有点都被搜了一遍即可。如果无法搜完全部点,则imposs...

solego’s blog 425

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Poj2488

http://poj.org/problem?id=2488 深度优先遍历 这道题最坑的地方是要求输出按照字典顺序!!注意仔细看题 the lexicographically first path好好看看题目的这句话。 还有写的时候分清自己的x和y,,可参考下面这幅图 https://blog.csdn.net/lyy289065406/article/details/6647666的图...

qq_35752161的博客 394

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

poj 2488 深搜

如题:http://poj.org/problem?id=2488   开始搜索专题的系统学习,注意搜索结束标志,以及搜索状态,别忘记回溯 。     题目要求从任意一点走日字,是否可以走完整个棋盘,改动的地方在于字典序,横坐标是从A开始的字母,纵坐标是从1开始的数字,q是数字的个数,p是字母的个数。   还要注意这一题答案应该不是唯一的才对,为什么没有special judge呢?

zht的专栏 499

POJ 2488 A Knight's Journey【dfs】

题目链接http://poj.org/problem?id=2488思路题意就是给你p*q的棋盘,行号1~p,列号A~A+q,问你一个马走遍整个棋盘的字典序最小的路径。那就遍历起点,列优先,行其次,然后深搜,深搜的分支也要列小的优先,列一样的行小的优先。然后把路径保存下来,能行的话直接返回就行。但是这么玩的话时间复杂度咋一想是26×26×826×2626\times 26\times 8^{26\t

初涉_代码世界 520

POJ 2488 A Knight's Journey 水搜索

题目大意:给一些棋盘的大小,

(╯°口°)╯(┴—┴ 710

POJ 2488 A Knight's Journey

题目链接:http://poj.org/problem?id=2488 分析:简单DFS,注意字典序最小 1 #include <cstdio> 2 #include <cstring> 3 4 const int dx[] = { -1, 1, -2, 2, -2, 2, -1, 1 }; 5 const int dy[] = { -...

aegt43853的博客 75

POJ2488==DFS+路径输出+字典序排列

/* * POJ 2488 * DFS进行遍历就好,记录走过的路径,只要不重复地走过p*q个方格就行了(结束条件) * /* 这里注意几个问题: 1、国际象棋,横着是字母,竖着是数字。 2、是按字典序输出的,所以搜索方向上一定要注意!这里是个坑。 3、忽略“The knight can start and end on any square of the board.”这句话,

穿着裤衩跳 623

POJ2488 骑士游历 A Knight's Journey 解题报告

这个题有3点要注意的地方。 1、弄清题意,p指行号,从上到下依次是1,2,3...p;q指列号,从左到右依次是A,B,C,D...,字典序输出意思是先按列排序,左边的在前,同一列的按行排序,行号小的在前。 2、递归遇到某个方块的下一步无处可跳时,返回上层之前要把vis矩阵相应位置清零!还有起始位置就是A1,如果A1无解则不需要再遍历别的情况了,直接输出impossible即可。 3、输出的时

monkeyduck的专栏 1417

POJ 2488 DFS水题

POJ 2488 题意:给一个n*m的国际象棋棋盘 问一个马能否不重复走完全部格子 如果有输出字典序最小的路径 行为数字 列为字母 一个格子的坐标为(列字母,行数字)要求字典序最小所以在每次马的行走时 走字典序最小的那一个 wa了两发 没注意到数组的大小 n*m <= 26 所以n,m <= 26 太坑爹!#include <cstdio> #include <iostream> #include

SolarDomo的博客 531

【poj 2488】A Knight's Journey 中文题意&题解&代码(C++)

dfs,poj

曾经追梦的happy时光 4592

POJ 2488

题目链接:http://poj.org/problem?id=2488 —————————————————————————————————————— 题目描述: 象棋,马走日字,问能否不重复的走完所有格子,不限起点终点。 输出字典序最小。 —————————————————————————————————————— 题目思路: 直接搜索。dfs。 ———————————————

相濡以沫的专栏 709

深搜水题poj2488

Description Background  The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey  around the world. Whenever a knight moves, it is

楚天千里清秋,水随天去秋无际 549
上一篇: ubuntu下编译c程序
下一篇: poj3331--------------------高精度
monkey7777
博客等级 码龄15年 55粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值