调试心得——以HDU-1010为例

【SABRE 3D, SABRE 3DxT,LAM设备】2025年9月12日-生产期间维护用的双重隔离 生产期间维护用的双重隔离。该程序用于准备将一个或多个双工位设置为维护状态,同时SABRE 3D/3DxT/3D Scimitar保持生产运行。其目的是在不中断生产的情况下将双工位与运行中的设备隔离。 阅读详情

一道小题,调试了将近一个小时——本打算今天多做两道题,目前来看目标无法实现。

这道题我几个月之前做过,今天重做一遍,结果TLE。于是我翻出几个月之前的AC代码,慢慢地把AC代码改成TLE代码,最后在群里网友的帮助下,找到了BUG。最终的AC代码是这样的,你可以从中看出之前的BUG。

/*
 * hdu-1010 tempter of the bone
 * mike-w
 * 2012-3-24
 ******************************************************
 * lisence: cc3.0
 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX_SIZE 10

char maze[MAX_SIZE][MAX_SIZE];
int tag[MAX_SIZE][MAX_SIZE];
int dd[4][2]={1,0,-1,0,0,1,0,-1};
int N,M,T,FLAG;

int search(int x, int y, int d)
{
    if(d>=T)
    {
        if(maze[x][y]=='D')
            FLAG=1;
		return 0;
	}
    /*tag[x][y]=1;*/
	maze[x][y]='X';
   	int i,x1,y1;
    for(i=0;i<4&&!FLAG;i++)
    {
        x1=x+dd[i][0];
        y1=y+dd[i][1];
        if(x1>=0 && x1<N && y1>=0 && y1<M
			&& (maze[x1][y1]=='.' || (d==T-1 && maze[x1][y1]=='D'))
            /*&& !tag[x1][y1]*/)
		   	search(x1,y1,d+1);
    }
    /*tag[x][y]=0;*/
	maze[x][y]='.';
    return 0;
}
        
int main(void)
{
#ifndef ONLINE_JUDGE
    freopen("in","r",stdin);
#endif
    int i,j,sx,sy,tx,ty,area;
    while(scanf("%d%d%d",&N,&M,&T),M||N||T)
    {
        memset(tag,0,sizeof(tag));
        for(i=0;i<N;i++)
            scanf("%s",maze[i]);
        area=0;
        for(i=0;i<N;i++)
            for(j=0;j<M;j++)
            {
                if(maze[i][j]=='.')
                    area++;
                if(maze[i][j]=='S')
                    sx=i,sy=j;
                if(maze[i][j]=='D')
                    tx=i,ty=j;
            }
		FLAG=0;
		maze[sx][sy]='X';
        if(((abs(sx-tx)+abs(sy-ty))&0x1) != (T&0x1))
            puts("NO");
        else if(area+1<T)
            puts("NO");
        else
            puts((search(sx,sy,0),FLAG)?"YES":"NO");
    }
    return 0;
}

程序里的BUG是,程序执行过程中把D点修改成了空白点,进而导致TLE。所以回溯的时候要仔细审查操作前后的变化,自己是否把所有状态都进行了恢复。

又是印象深刻的一课。

《湖科大教书匠计算机网络》学习笔记总目录+思维导图 本篇文章是对《湖科大教书匠计算机网络》所有知识点的笔记总结归档和计算机网络的思维导图 阅读详情

相关推荐

(三)从零开始学习模糊控制——模糊决策

模糊控制之基础——模糊数学 (一)模糊数学——基本概念 (二)模糊数学——模糊关系 (三)模糊数学——模糊决策 文章目录模糊控制之基础——模糊数学前言一、模糊决策法1.最大值原理2.模糊排序2.模糊寻优总结 前言   模糊决策是指在模糊环境下进行决策的数学理论和方法。这类问题─般具有大系统特征,系统之间的关系十分复杂,存在不能准确赋值的变量,这些变量属于模糊因素,涉及到一定的主观因素,使得子系统之间、变量之间的关系不清晰,从而必须借助排序、模糊评判等方法来进行处理。 一、模糊决策

qq_43667552的博客 4750

HDU(1010)bfs+剪枝 Tempter of the Bone

New~ 欢迎参加2016多校联合训练的同学们~                                         Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis

昨日明眸 1492

Jetson Orin NX 单目标跟踪算法实战

本文对比了NanoTrack和MixFormerV2两种目标跟踪算法在Jetson Orin NX边缘设备上的实际表现。通过天空小目标跟踪场景测试发现,NanoTrack虽然表征能力较弱,但具有目标身份一致性强、失败模式可控、计算负担小等优势,更适合作为边缘端默认算法。MixFormerV2则适用于高速运动等特定场景。实验数据显示NanoTrack在Orin NX上可达200FPS,远高于MixFormerV2的38-120FPS。建议先采用NanoTrack构建稳定系统,后续再评估复杂算法的适用性。

karmueo46的博客 624

HDU1010 关于DFS

Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 63147    Accepted Submission(s): 17286 Problem Description The

不吐槽会死星人 717

第五章 PCIe介绍 5.1-5.7

为什么SSD要用PCIe接口?因为它快,比SATA快。通道,PCIe最多可以有32个通道。两个设备之间的PCIe连接,叫做一个Link。如下图,设备A和设备B是个双向连接,两个PCIe设备之间,有专门的发送和接收通道,数据可以同时往两个方向传输,PCIe Spec称这种工作模式为,可以理解为。和PCIe一样,SATA有独立的发送和接收通道。但与PCIe工作模式不一样,同一时间,SATA只有一条通道可以进行数据传输。这种工作模式称为。与SATA单通道不同,PCIe连接可以通过增加通道数扩展带宽。

fengbaobaola的博客 2968

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 338

HDU1010

题目链接:HDU1010 一道DFS题目,程序种有两点需要注意: 1.快速读入数据 2.剪枝加速判断 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #include<stdio.h> #include<stdlib.h> #include<iostream> #include<iomanip> #include<cmath> #include<algorithm> #includ

wwww190的博客 275

正点原子ATK-LORA-01无线串口代码移植+STM32F103C8T6(标准库)

目录 一、ATK-LORA-01无线串口资料 二、代码移植 1.分析 (1)usart3(也可以是其他的串口)用于接收数据的串口 usart.h (2)time3(也可以是其他的定时器)用于时序的设置 (3)lora.c 三、演示 1.主机(发送方) (1)主机接线 (2)主机代码(发送方) (3)主机实物 插上无线串口通电即可发送​ 2.从机(接收方) (1)从机接线(LORA与主机相同) (2)从机代码(接收方) (3)从机实物 接上TTL和LORA并通电即...

m0_56942354的博客 8966

hdu-1010

题意:在一个迷宫中有一只小狗和一根骨头,然后在T分钟的时候恰好迷宫的出口会打开,然后问小狗是否能在第T分钟的时候到达出口离开迷宫。 小狗可以向上下左右四个方向移动,然后小狗不能走回头路,即已经走过了的路就不能再走,并且小狗只能一直走,不能停下来。 思路:这道题就是dfs+剪枝的应用。 1.dfs的话:注意结束条件为——小狗当前所用的时间刚好为T分钟的时候,同时进行判断,如果所在的地方恰好是出口,那么就好说了...不然的话就继续进行搜索。 2.剪枝的话:就是求小狗当前所在的位置与迷宫出口D之间的距离dis

差不多先灬森 2175

ThingsBoard 场景联动需求

当初有个兄弟请我帮他实现一个需求,需求如上,很简单,实现完成后我怕他操作不来,又写了这份文档给他,今天把这个文档的场景发出来,大家也可以学习一下思路我把需要模拟设备的指令都总结在下面,连接参数截图讲解如下:温度传感器风扇光照传感器灯。

AldrichEugene 1232

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计

printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。

PP_Cottage的博客 1033

(1010)HDU

题意:在N*M的图下。问你从S到D是够可以到达在第T秒的时候 解决方法:DFS 注意:两次剪枝  #include #include #include #include #include #include #include #include #include #include #define ll __int64 #define lll unsigned lon

Amon 369

【DEIM创新改进】全网首发、独家特征融合创新改进篇 | CVPR2025 | 引入RLAB残差线性注意力特征融合块,有效融合并强调多尺度特征,有效减少信息丢失,助力DEIM目标检测有效涨点

本文提出了一种改进DEIM网络模型的新方法RLAB(残差线性注意力特征融合模块),用于医学图像生物标志物分割。RLAB模块通过多尺度残差精炼和注意力机制,有效整合编码器跳跃连接与解码器特征图,提升特征对齐和关键区域关注能力。实验表明,该方法在MoNuSeg、DSB等四个医学图像数据集上显著优于现有方法,最高提升4.03%的绝对性能。文章详细介绍了RLAB的网络结构、核心代码实现方式,并提供了将模块集成到DEIM模型的具体步骤。

Ai缝合怪、助力小伙伴高效发论文 349

HDU 1010 Tempter of the Bone &&ZOJ 2110【DFS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意:一只狗受到了骨头的诱惑,进了n*m的迷宫,迷宫的大门在第T秒开启。小狗要恰好在T秒到达。并且.只能走一次。解题思路:BFS求最短时间,这里并不适合。因此dfs.dfs有3个状态dfs(i, j, t),表示到达(i, j)花费t秒。这里要有剪枝:剪枝1.目标状态(x1, y1),现在...

weixin_34004750的博客 102

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

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

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hdu 1010

hdu1010 回溯法的两种写法

vbs100的专栏 468

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hdu1010

下次看别人的代码前一定要先上 OJ。。。。 方法: DFS + 剪枝 参考的代码(有错。。): #include <cstdio> #include<iostream> using namespace std; char ch; int a[10][10], f, n, m, t, si, sj, di, dj, c, i, j; void solv...

weixin_34209406的博客 76

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

hdu 1010 Tempter of the Bone dfs

传送门http://acm.hdu.edu.cn/showproblem.php?pid=1010 收获最大的一个dfs了,写了一天,最后看到了一个让人无语的错误,反省ing'~~ dfs的多重递归确实比较伤,很难debug,我是直接在dfs的开始输出了x,y这种方法不错,推荐一下!!! 首先是最重要的剪枝问题,我在这道题用到了两种。首先是最基础的,从实用性来讲最高的,奇偶剪枝—— 原

萌即正义的萌新教学 361

hdu1010(dfs和奇偶剪枝)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目大意: 就是看指定的迷宫内存不存在一条路是指定步数的路径从起点到终点。 题目思路: 就是利用dfs进行搜索 然后利用奇偶剪枝来进行减少搜索时间 简单说下奇偶剪枝: 给我们一个地图,如: S.X. …X. …XD … 我们可以看成: 0101 1010 0101 1010 起点所在的为0,终...

zhoupingqi2017的博客 183

HDU 1010 Tempter of the Bone

一道搜索题,需要加奇偶剪枝,需要注意的地方是题目要求在T时刻时刚好到达D位置。 顺带吐槽一下,调试的时候遇到各种奇葩错误,例如去掉提示信息后,答案居然不一样,尼玛,这么会有这种错误啊啊啊啊。 G++提交WA,C++提交AC又是什么鬼啊 #include #include #include #include using namespace std; int N,M,T; int sx,

BacktoWin 420

HDU 1010

// HDU 1010.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <string.h> using namespace std;int n,m,k,num; int sx,sy; char map[8][8]; int flag[8][8]; int dir[4][2]={{-1,0},{0,-1

St_Steven的博客 295

DFS入门--经典迷宫问题(杭电1010)

1. DFS概念 通俗一点就是不撞南墙不回头。是一个递归的过程。 数据结构中的定义:假设初始状态是所有顶点未曾被访问,则深度优先搜索可从 图中某个顶点v0出发,访问此顶点,然后依次从v0的邻接点出发递归的进行同样 的深度搜索,直到图中所有和v0有路径相通的顶点都被访问到。好像还是很抽象, 那上图吧。 假设从E点出发,当有多种选择时,采用字母序的策略选取下一个邻接点。 选择A为下一个邻接点,则从A出发进行递归搜索。依此类推,依次从B,C,D出发进行递 归搜索。在访问了D之后,由

m0_51736862的博客 548

Summer day 4

今天上午深入理解了下DFS,找了模板题自己写会了。上午就写了DFS,下午在神游+看书。HDU1010都写在里面了。 下午神游的时候偶然发现一道类似的拓展的DFS题,于是照猫画虎写了果断WA,不想调试了,DFS递归绕来绕去真智障,贴个HDU的简洁代码做参考HDU 2102#include <cstdio> char a[2][11][11]; int n, m, t, xx[4]={0,0,1,-1

EXECUTER 505

HDU1010(Tempter of the Bone)深搜

HDU1010 Tempter of the Bone 广搜每走 思路:简单的深搜,如果map[nextx][nexty]!='X',则以该最后点为当前节点继续搜,若继续搜没有路可走,则释放当前节点(即原来标记过,恢复为未标记,以便再以其他节点搜索时经过该点),回到上一节点,return.由于step是局部变量,其生命周期随着当前层的DFS()函数结束而结束,所以返回上一层时,step的值就是

colorsunlight的专栏 1282

hdu 4849 最短路 西安邀请赛 Wow! Such City!

http://acm.hdu.edu.cn/showproblem.php?pid=4849 会有很多奇怪的Wa的题,当初在西安就不知道为什么wa,昨晚做了,因为一些Sb错误也wa了很久,这会儿怎么写都会AC。。。。 收获: 1、还是基本都构思好在去敲代码,因为当时没过,昨晚心里有阴影,敲得很慢,而且最开始各种取模以防止漏掉,太保守了...... 2、如果出错,注意参数是不是对的,最开始写

Pilgrim 1419

HDU 1010 - Tempter of the Bone

http://acm.hdu.edu.cn/showproblem.php?pid=1010 Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 28956Accepted Submissio...

weixin_30240349的博客 74

[hdu1010]Tempter of the Bone 题解

题目大意: 给定一幅地图,“.”是可以走的空格子,“S”是起点,“D”是终点,“X”是不可以走的墙。问有无这样的一条路,使得从S出发到D恰好在第t秒。并且,不能停留在任何位置。 分析: 因为数据范围很小,所以我使用了爆搜,但是虽然没有TLE,但是却WA了。样例过了,调试感觉也没问题,所以为什么??? #pragma GCC optimize(2) #include<cstdio> #i...

Engels_Si_Fish的博客 263
上一篇: [HDU-2616] DFS
下一篇: [POJ-2631] 求树的直径
creativewang
博客等级 码龄17年 20粉丝 203原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值