Codeforces Good Bye 2017 B - New Year and Buggy Bot

news/2024/5/19 0:23:16 标签: codeforces, 枚举, 字符串, 搜索

简单枚举情况。对于每一种可能的映射都尝试一遍,如果机器人“撞墙”了,则失败,如果在操作集消耗完之前走到终点,则成功。

#include <cstdio>
#include <cstring>
char maze[55][55],ope[105];
int wayx[]={0,0,1,-1},wayy[]={1,-1,0,0};
int trys[25][5]={{0,1,2,3},{0,2,1,3},{0,1,3,2},{0,2,3,1},{0,3,2,1},{0,3,1,2},
            {1,0,2,3},{1,0,3,2},{1,3,0,2},{1,3,2,0},{1,2,0,3},{1,2,3,0},
            {2,0,3,1},{2,0,1,3},{2,1,3,0},{2,1,0,3},{2,3,0,1},{2,3,1,0},
            {3,0,2,1},{3,0,1,2},{3,2,1,0},{3,2,0,1},{3,1,2,0},{3,1,0,2}};
int main(){
    int m,n,sx,sy,ex,ey,lenx,nx,ny,flag,cnt=0;
    scanf("%d%d",&m,&n);
    for(int i=0;i<m;i++){
        scanf("%s",maze[i]);
        for(int j=0;j<n;j++){
            if(maze[i][j]=='S')sy=i,sx=j;
            if(maze[i][j]=='E')ey=i,ex=j;
        }
    }
    scanf("%s",ope);lenx=strlen(ope);
    for(int i=0;i<24;i++){
        nx=sx;ny=sy;flag=0;
        for(int j=0;j<lenx;j++){
            nx+=wayx[trys[i][ope[j]-'0']];ny+=wayy[trys[i][ope[j]-'0']];
            if(nx<0||ny<0||nx>=n||ny>=m||maze[ny][nx]=='#')break;
            if(maze[ny][nx]=='E'){
                flag=1;break;
            }
        }
        if(flag)cnt++;
    }
    printf("%d",cnt);
}

http://www.niftyadmin.cn/n/1247307.html

相关文章

Codeforces Good Bye 2017 C - New Year and Curling

简单模拟&#xff0c;对于第i个冰壶&#xff0c;如果k∈[0,i-1]范围的冰壶k阻碍了冰壶&#xff0c;即&#xff1a; |xi−xk|<2r则假设冰壶i能走到冰壶k与之碰撞i。计算此时冰壶y&#xff0c;我们对每一个情况都做判断&#xff0c;找出最大的y即可。#include <cstdio>…

YOLO windows 配置

VS darknet代码下载&#xff1a; https://github.com/AlexeyAB/darknet作者配置时的环境 visual studio 2013 显卡 GTX 960M CUDA 7.5 Opencv 2.4.9 pthreadpthread 下载地址 YOLO官网 http://pjreddie.com/darknet/yolo 步骤 1、 新建vs工程 2、 将工程设置为Release x…

Codeforces Good Bye 2017 F - New Year and Rainbow Roads

一、如果升序中没有G颜色点&#xff1a; 那么我们找到第一个B颜色点prb(prev-blue)和最后一个B颜色点sub(succ-blue)&#xff0c;和第一个R颜色点prr(prev-red)和最后一个R颜色点suc(succ-red)&#xff0c;最优的方案是&#xff1a; costxsub−xprbxsur−xprr如果某个颜色也不…

[练习]自己写的C语言链表模板 ver 1.0

#include <stdio.h> #include <stdlib.h> //定义布尔数值 true false #define true 1 #define false 0 //定义错误类型 wrong #define wrong 0x7fffffff typedef int boolean;//定义布尔类型 typedef struct Node *list,*position; struct Node{int data;//数据…

洛谷P1000 超级玛丽

想想那时候我还真是无聊呢&#xff0c;好吧现在也很无聊w #include<cstdio> using namespace std; int main() {printf(" ********\n");printf(" ************\n");printf(" ####....#.\n");…

Ubuntu 安装git

安装的方法有两种&#xff0c;一种直接是通过ubuntu的APT安装&#xff0c;这种方法最简便&#xff0c;缺点是版本可能不是最新的。所有还有另一种方法是下载源码进行安装&#xff0c;这种能安装到想要的版本。这里只说第一种&#xff1a; 步骤&#xff1a; sudo apt-get updat…

LeetCode50天刷题计划第二季(Day 10 —从前序与中序遍历序列构造二叉树(20.00-20.40)从中序与后序遍历序列构造二叉树(20.40-21.00)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、题目从前序与中序遍历序列构造二叉树示例提示二、思路三、代码四、题目从中序与后序遍历序列构造二叉树示例提示五、思路六、代码前言 今天好冷啊 感觉要99…