Codeup墓地-1802
src:http://codeup.cn/problem.php?id=1802
1802: 密码锁
时间限制: 1 Sec 内存限制: 32 MB
题目描述
玛雅人有一种密码,如果字符串中出现连续的2012四个数字就能解开密码。给一个长度为N的字符串,(2=<N<=13)该字符串中只含有0,1,2三种数字,问这个字符串要移位几次才能解开密码,每次只能移动相邻的两个数字。例如02120经过一次移位,可以得到20120,01220,02210,02102,其中20120符合要求,因此输出为1.如果无论移位多少次都解不开密码,输出-1。

输入
第一行输入N,第二行输入N个数字,只包含0,1,2

样例输入
5
02120
5
02120
样例输出
1
1

//BFS+map
#include<bits/stdc++.h>
using namespace std;
struct Node{string s;int t;Node(){}Node(string _s,int _t):s(_s),t(_t){}
};
int n;
int BFS(Node x){map<string,int>mp;mp.clear();queue<Node> Q;Q.push(x);while(!Q.empty()){Node nd=Q.front();Q.pop();string l=nd.s;if(l.find("2012")!=-1)return nd.t;if(mp[l])continue;mp[l]=1;for(int i=0;i<n-1;i++){swap(l[i],l[i+1]);Q.push(Node(l,nd.t+1));swap(l[i],l[i+1]);}}return -1;
}
int main(){while(~scanf("%d",&n)){getchar();string line;getline(cin,line);if(line.find("0")!=-1&&line.find("1")!=-1&&line.find("2")!=-1&&n>3){printf("%d\n",BFS(Node(line,0)));}else printf("-1\n");}return 0;
}

Codeup墓地-1802相关推荐

  1. Codeup墓地-1123

    Codeup墓地-1123 src:http://codeup.cn/problem.php?id=1123 1123: 确定排序序列 时间限制: 1 Sec 内存限制: 32 MB 题目描述 一个由 ...

  2. Codeup墓地-1107

    Codeup墓地-1107 src:http://codeup.cn/problem.php?id=1107 1107: 欧几里得游戏 时间限制: 1 Sec 内存限制: 32 MB 题目描述 小明和 ...

  3. Codeup墓地1817号A+B

    Codeup墓地链接:http://codeup.cn/ 本题链接:http://codeup.cn/problem.php?cid=100000575&pid=1 问题描述: 问题 B: A ...

  4. Codeup墓地-2337

    Codeup墓地-2337 src:http://codeup.cn/problem.php?id=2337 2337: 阻击火箭队 时间限制: 1 Sec 内存限制: 32 MB 题目描述 小明很喜 ...

  5. Codeup墓地-1985

    Codeup墓地-1985 src:http://codeup.cn/problem.php?id=1985 1985: 任务调度 时间限制: 1 Sec 内存限制: 32 MB 题目描述 读入任务调 ...

  6. Codeup墓地-2118

    Codeup墓地-2118 src:http://codeup.cn/problem.php?id=2118 2118: 非常可乐 时间限制: 1 Sec 内存限制: 32 MB 题目描述 大家一定觉 ...

  7. Codeup墓地-1098

    Codeup墓地-1098 src:http://codeup.cn/problem.php?id=1098 1098: 最少的交换 时间限制: 1 Sec 内存限制: 32 MB 题目描述 现在给你 ...

  8. Codeup墓地-2117

    Codeup墓地-2117 src:http://codeup.cn/problem.php?id=2117 2117: 确定比赛名次 时间限制: 1 Sec 内存限制: 32 MB 题目描述 有N个 ...

  9. Codeup墓地-2070

    Codeup墓地-2070 src:http://codeup.cn/problem.php?id=2070 2070: 坠落的蚂蚁 时间限制: 1 Sec 内存限制: 32 MB 题目描述 一根长度 ...

最新文章

  1. 怎么扫描_打印机上扫描仪怎么用 打印机上扫描仪使用及添加方法
  2. Windows配置ArUco
  3. pytorch自定义交叉熵损失函数
  4. Shell中判断字符串是否为数字的6种方法分享
  5. leetcode-125-Valid Palindrome
  6. Spring 框架简介及官方压缩包目录
  7. 【转】Cron表达式简介
  8. mysql 函数 截取,MySQL 字符串函数:字符串截取
  9. TensorFlow Probability概率编程-时序模型
  10. 考研数学二112题 交换积分次序
  11. 在ubuntu用wine安装微信 并解决无法输入文字的问题 ubuntu完美安装微信
  12. Slicer学习笔记(六十一)slicer下segmentation segment合并
  13. 棣拓DTAS公差分析软件-蒙特卡洛法公差分析软件-容差分析软件
  14. javascript成神之路(1):如何编写高质量的js代码
  15. 港科资讯|沈向洋教授获委任为香港科大校董会主席
  16. 2022第二届中国新能源汽车功能安全创新国际峰会
  17. [JVM]了断局: JDK8默认配置.
  18. 试题 算法训练 九宫格的奥(解题思路与代码)
  19. 超级账本-面向企业的分布式账本
  20. 世界女性科技群落(三):全世界最幸福的地方,女性和科技的月之暗面

热门文章

  1. CentOS7搭建LVS-DR模式(单网段+多网段)
  2. Mac 您没有权限打开应用程序
  3. Linux与UNIX的区别与联系
  4. Baidu Apollo 资源帖
  5. Yearning安装
  6. 多元线性回归—自相关
  7. 禁止RecyclerView复用
  8. 【android】实现图片的三级缓存。工具类
  9. 关于云模型生成云图的MATLAB代码
  10. SYNOPSYS™前视红外辐射计(FLIR)设计, 冷反射效应