poj 3083 Children of the Candy Corn

【题解】POJ3083 Children of the Candy Corn(DFS + BFS) POJ3083 Children of the Candy Corn 明天写 阅读详情

我要吃糖!!!(^o^)/~


题目大意:
多case,给出cas张地图,’#’代表墙,’.’代表坦坦大道,也就是说你要是不想死的话就好好走’.’吧! >o<
要求输出3个数字,第一个—优先向左靠墙走,第二个—优先向右靠墙走,第三个—最短路


分析:
STMD算法!!!
第三个答案很好说,大家都会,那么优先向左/右走呢???
以优先向左为例吧♪(^∇^*)
我们只要找出方向优先级就好啦
左上右下,按照这个顺序走找到答案即可
(**记得要保存你当前的方向)


代码如下:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxn=40+5;
int cas,row,columns,maxdep,flag;
int start[2+1],pri[4][2+1],end[2+1];
char str[maxn],chess[maxn][maxn];
bool left(int dep,int x,int y,int dire){
    for(int i=0;i<=3;i++){
        int xx=x+pri[(i+dire+4)%4][1],yy=y+pri[(i+dire+4)%4][2];
        if(xx<1||xx>row||yy<1||yy>columns)
            continue;
        if(chess[xx][yy]=='E'){
            printf("%d ",dep+1),flag=1;
            return true;
        }
        else if(chess[xx][yy]=='.')
            if(left(dep+1,xx,yy,(i+dire-1+4)%4))
                return true;
    }
    return false;
}
bool right(int dep,int x,int y,int dire){
    for(int i=0;i<=3;i++){
        int xx=x+pri[(dire+2-i+4)%4][1],yy=y+pri[(dire+2-i+4)%4][2];
        if(xx<1||xx>row||yy<1||yy>columns)
            continue;
        if(chess[xx][yy]=='E'){
            printf("%d ",dep+1),flag=1;
            return true;
        }
        else if(chess[xx][yy]=='.')
            if(right(dep+1,xx,yy,(dire+2-i-1+4)%4))
                return true;
    }
    return false;
}
bool id_dfs(int dep,int x,int y,int dire){
    if(dep>maxdep)
        return false;
    if(abs(end[1]-x)+abs(end[2]-y)+dep-1>maxdep)
        return false;//一定要加剪枝,不加会TLE的很惨!!!加了0MS,你自己选吧(~~~~(>_<)~~~~)
    for(int i=0;i<=3;i++){
        int xx=x+pri[(i+dire+4)%4][1],yy=y+pri[(i+dire+4)%4][2];
        if(xx<1||xx>row||yy<1||yy>columns)
            continue;
        if(chess[xx][yy]=='E')
            return true;
        else if(chess[xx][yy]=='.')
            if(id_dfs(dep+1,xx,yy,(i+dire-1+4)%4))
                return true;
    }
    return false;
}
int main(){
    scanf("%d",&cas);
    while(cas--){
        scanf("%d%d",&columns,&row);
        for(int i=1;i<=row;i++){
            scanf("%s",str);
            for(int j=1;j<=columns;j++){
                chess[i][j]=str[j-1];
                if(chess[i][j]=='S')
                    start[1]=i,start[2]=j;
                else if(chess[i][j]=='E')
                    end[1]=i,end[2]=j;
            }
        }
        pri[0][1]=0,pri[0][2]=-1,pri[1][1]=-1,pri[1][2]=0,pri[2][1]=0,pri[2][2]=1,pri[3][1]=1,pri[3][2]=0;
        flag=0,left(1,start[1],start[2],0);
        flag=0,right(1,start[1],start[2],0);
        for(int i=1;i;i++){
            maxdep=i;
            if(id_dfs(1,start[1],start[2],0)){
                printf("%d\n",maxdep+1);
                break;
            }
        }
    }
    return 0;
} 

by >o< neighthorn

【poj 3083】Children of the Candy Corn 中文题意&题解&代码(C++) poj3083 阅读详情

相关推荐

POJ - 3083:Children of the Candy Corn

Children of the Candy Corn 来源: 标签: 参考资料: 相似题目: 题目 The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zomb...

WINGREZ‘S BLOG 755

Poj 3083 Children of the Candy Corn

题目大意:前提:(迷宫中一直向左或者向右走(可用DFS),一定可以走出迷宫,即从S走到T) 要求输出一直向左走走出迷宫需要的步数,一直向右走走出迷宫需要的步数,和走出迷宫需要的最小步数(两次深搜,一次广搜) 附AC代码 #include<iostream> #include<queue> using namespace std; #define MapMax 40 #def...

RoronoaDZoro的博客 291

海康威视Web3.0插件实战:快速部署摄像头实时预览方案

本文详细介绍了海康威视Web3.0插件的实战应用,包括快速部署摄像头实时预览方案的完整流程。从插件下载安装到摄像头连接配置,再到浏览器兼容性解决方案,帮助开发者和IT人员高效实现网页端监控功能。特别针对预览功能调优和多摄像头管理等高级应用提供了实用技巧。

weixin_29266679的博客 344

poj 3083 Children of the Candy Corn【BFS+DFS】

    poj 3083 Children of the Candy Corn Children of the Candy Corn Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9528   Accepted: 4126 Description The cornfield maz...

Y390d的博客 256

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1597

从理论到实践:全面解析Cmk(设备能力指数)的应用与优化

本文全面解析了设备能力指数Cmk的核心概念、计算逻辑与关键应用场景。Cmk作为衡量设备本身固有加工能力的黄金标准,在设备验收、大修后验证及过程能力根因分析中至关重要。文章通过实战案例,详细阐述了执行Cmk测试的“五大固定”黄金法则、数据计算分析方法,并提供了Cmk不达标时的系统性排查与优化策略,帮助制造企业实现预防性质量管理。

jump7的博客 519

【POJ 3083】Children of the Candy Corn

POJ【3083】Children of the Candy Corn Dfs+Bfs

ACMer' 1074

ADS 使用教程(十八)Encrypting Designs using RFIP Encoder in ADS

在这一节,我们使用RFIP Encoder进行设计加密,这是一种保护知识产权和敏感设计数据的重要方法。RFIP Encoder提供了一种安全的方式来加密设计文件,确保只有授权人员能够访问和使用这些文件。

Dirge19的博客 1169

【POJ3083】Children of the Candy Corn

本题传送门 本题知识点:深度优先搜索 + 宽度优先搜索 本题题意是求三个路径长度,第一个是一直往左手边走的距离,第二个是一直往右手边走的距离,第三个是最短距离。 第三个很好办,就是一个简单的bfs的模板,问题出在第一二个。 但第一二个只是方向的丝丝不同,所以会其中一个也就解决了。 读懂题意后很简单,问题是怎么简单高效地实现。 推荐这篇博客 一些感慨:该题做了我差不多4个小时吧,前前后后d...

LT4585的博客 304

手把手教你用Arduino Uno控制meArm机械臂(附完整代码+避坑指南)

本文提供了一份详尽的meArm机械臂控制指南,涵盖从Arduino Uno硬件连接到Servo库编程的完整流程。重点讲解了如何通过独立供电、软件限位和平滑运动函数实现稳定控制,并设计了串口指令协议与高级功能,帮助创客有效规避舵机抖动、电源不足等常见问题,让机械臂运行更流畅可靠。

gpt4scribbler的博客 540

PHP 网页游戏开发入门教程

我们还链接了一个名为 “game.js” 的 JavaScript 文件,稍后将在其中编写游戏逻辑。这只是一个简单的示例,但它演示了如何使用 PHP 和 JavaScript 开发一个基本的网页游戏。以下是一个示例游戏的源代码和解释。现在,您可以在浏览器中打开 “game.php” 文件,即可看到一个带有红色游戏角色的游戏板。在上述代码中,我们使用 JavaScript 创建了一个游戏角色元素,并将其添加到游戏板容器中。最后,我们需要将游戏元素的样式设置为绝对定位,以便能够正确地控制它们的位置。

KkowServer的博客 678

POJ-3083 Children of the Candy Corn

这是一道深搜加广搜的题目,在房间里模拟走迷宫走了两圈才搞清楚原理,因为在一些小细节的地方出错,花了很久才解决了这道题,对我来说还是很有意义的一道题,用的是C写的 题目大意: 在迷宫中从起点走到终点,每走一步加一,起点和终点也要加一。要求输出三种不同的移动方式所需的步数,分别是一直靠着左边走、一直靠着右边走、最短路径。靠左和靠右走有点不好理解,接下来重点研究一下。 难点: 靠左走的意思是:每走一步...

打代码的小明的博客 407

RTCA DO-160G标准详解:航空电子设备的全面环境适应性测试指南

第二章的主要目的是提供标准中使用的术语和定义。了解这些术语对于准确理解标准的要求至关重要,特别是在技术实施过程中。RTCA DO-160G 涉及多个学科的知识,包括航空、电子、电磁学和机械工程,因此需要确保使用的术语在所有学科中具有一致的定义。为了确保测试人员和工程师在执行测试时对所有条件和要求的理解一致,RTCA DO-160G 标准中定义了大量术语。环境应力:指的是设备在操作过程中可能遇到的外部物理或化学条件,包括温度、湿度、振动等。电磁干扰(EMI)

qq_41854911的博客 5276

POJ-3083 Children of the Candy Corn 解题报告

Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombies, chainsaw-wielding psychopaths, hippies, and other terro

岁月流风、、 1254

8155源码编译DSP(ubuntu环境下)

一.设置环境变量 -users:/$ sudo gedit ~/.bashrc #set adsp cdsp tools path #export ARMLMD_LICENSE_FILE=<LICENSE FILE INFO> #export ARMTOOLS=RVCT221 #export ARMROOT=/pkg/asw/compilers/arm/ADS1.2 #export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/2.2BLD593

Johnny2004的专栏 1676

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

POJ 3083--Children of the Candy Corn

题目:这是题目 题意:一个迷宫,从S点走到E点,求一直靠墙向左走和靠墙向右走以及随便走的最短路, 保证数据的合法性,一定会有路。 定义的方向: int x[4] = {0, -1, 0, 1};//左 上 右 下 int y[4] = {-1, 0, 1, 0}; 思路:要求靠墙向左走和靠墙向右走,用DFS,求随便走最短路用BFS。该题的比较难的地方是处理方向。

Time_Life的专栏 492

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ 3083 Children of the Candy Corn

题目链接:http://poj.org/problem?id=3083 题目分析:

Saber 586

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

廖雪峰Python教程[完整版]

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

POJ 3083 Children of the Candy Corn

Children of the Candy Corn Time Limit:1000MS Memory Limit:65536K Total Submissions:7551 Accepted:3292 Description The cornfield maze is a popular Hallo...

anvt77205的博客 200

POJ 3083, Children of the Candy Corn

Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 2934Accepted: 1418 DescriptionThe cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the...

weixin_33862514的博客 288

poj3083Children of the Candy Corn

http://poj.org/problem?id=3083 #include #include #define Max 50 int w,h; char maze[Max][Max]; int start_x,start_y,end_x,end_y; int dir[4][2]={{0,-1},{-1,0},{0,1},{1,0}};//左上右下 int visited[Max][Max]

ViolentLittleAngel的博客 391

POJ 3083 Children of the Candy Corn

Description The cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the maze facing zombies, chainsaw-wielding psychopaths, hippies, and other terro

Occult 619

poj3083 Children of the Candy Corn

比较简单的搜索题,用到了dfs和bfs。dfs比较适合搜索有无可行解,如本题中左转优先和右转优先是利用dfs算法求解得,而bfs适合寻找最优解,如本题最短路径就是bfs。 这道题有一个比较需要注意的地方就是bfs时用visit[][]记录是否访问时,一定要在加入que队列的时候就修改visit[x][y]的值,我第一次是在出队列的时候修改其值,因为想的是出队列 时才是访问它的时候,但是这样就大

monkeyduck的专栏 1030
上一篇: BZOJ 1040: [ZJOI2008]骑士
下一篇: poj 3460 Booksort
NeighThorn
博客等级 码龄11年 20粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值