Codeforces 908B New Year and Buggy Bot 题解
时间:2019-08-22
本文章向大家介绍Codeforces 908B New Year and Buggy Bot 题解,主要包括Codeforces 908B New Year and Buggy Bot 题解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
主要思路:全排列,然后按输入的字符串走并且判断是否撞墙
注:这样不会TLE,全排列最多24种
Code(C++):
1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=60; 4 const int S=110; 5 int dx[5]={0 , -1 , 1 , 0}; //行 6 int dy[5]={1 , 0 , 0 , -1}; //列 7 // {右, 上 , 下 ,左} 8 int s[S],t[5]; 9 char a[N][N]; 10 int n,m; 11 int sx,sy,ex,ey;//开始与结束的坐标 12 int main() { 13 int ans=0; 14 cin>>n>>m; 15 for(int i=1;i<=n;i++) { 16 for(int j=1;j<=m;j++) { 17 cin>>a[i][j]; 18 if(a[i][j]=='S') { 19 sx=i;sy=j; //记下起点 20 } 21 else if(a[i][j]=='E') {//这里可以删去,后面if(x==ex && y==ex) 改为 if(a[x][y]=='E') 22 ex=i;ey=j; //记下终点 23 } 24 } 25 } 26 string st; 27 cin>>st; 28 int l=st.size(); 29 for(int i=1;i<=l;i++) s[i]=st[i-1]-'0';//将st换为数组 30 for(int i=0;i<4;i++) t[i]=i; 31 int x,y; 32 do { 33 x=sx;y=sy;//这边别忘了,每次都要初始化 34 for(int i=1;i<=l;i++) { 35 if(x>n || y>m || x<1 || y<1) break; //出界 36 x+=dx[t[s[i]]]; 37 y+=dy[t[s[i]]]; 38 if(x==ex && y==ey) { //到达终点 39 ans++; 40 break ; 41 } 42 if(a[x][y]=='#') break;//撞墙 43 } 44 }while(next_permutation(t,t+4));//全排列函数 45 cout<<ans<<endl; 46 return 0; 47 }
原文地址:https://www.cnblogs.com/Ryan-juruo/p/11393717.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Spring Security 中如何细化权限粒度?
- 小书MybatisPlus第4篇-表格分页与下拉分页查询
- 小书MybatisPlus第3篇-自定义SQL
- Nginx + Spring Boot 实现负载均衡
- 小书MybatisPlus第2篇-条件构造器的应用及总结
- 一个案例演示 Spring Security 中粒度超细的权限控制!
- 信息收集之主机发现:nmap
- 文本文件逐行处理–用java8 Stream流的方式
- 使用java8API遍历过滤文件目录及子目录及隐藏文件
- 使用位运算、值交换等方式反转java字符串-共四种方法
- 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换
- 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
- 在图中添加多边形
- 设置坐标轴刻度的位置和样式
- OkHttp透明压缩,收获性能10倍,外加故障一枚