HDU1195---Open the Lock
2015-06-15 23:27
281 查看
用所有情况加队列遍历一下就好
#include<stdio.h> #include<string.h> #include<queue> using namespace std; bool vis[10][10][10][10]; struct node{ int num[4],count;}; node st,res; queue<node>q; void bfs(){ node ft; ft=st; ft.count=0; vis[ft.num[0]][ft.num[1]][ft.num[2]][ft.num[3]]=1; q.push(ft); while(!q.empty()){ ft=q.front();q.pop(); if(ft.num[0]==res.num[0]&&ft.num[1]==res.num[1]&&ft.num[2]==res.num[2]&&ft.num[3]==res.num[3]){ printf("%d\n",ft.count); return; } node tp; for(int i=0;i<4;i++){ tp=ft; tp.num[i]++; if(tp.num[i]==10) tp.num[i]=1; if (vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]] != true){ vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]]=true; tp.count++; if(tp.count>40); else q.push(tp); } } for(int i=0;i<4;i++){ tp=ft; tp.num[i]--; if(tp.num[i]==0) tp.num[i]=9; if(vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]]!=true){ vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]]=true; tp.count++; if(tp.count>40); else q.push(tp); } } for (int i=0;i<3;i++) { tp = ft; int temp = tp.num[i]; tp.num[i] = tp.num[i + 1]; tp.num[i + 1] = temp; if (vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]] != true) { vis[tp.num[0]][tp.num[1]][tp.num[2]][tp.num[3]] = true; tp.count++; if(tp.count>40); else q.push(tp); } } } } int main(){ int t; scanf("%d",&t); while(t--){ memset(vis,0,sizeof vis); int tp; scanf("%d",&tp);st.num[0]=tp/1000;st.num[1]=tp%1000/100;st.num[2]=tp%100/10;st.num[3]=tp%10; scanf("%d",&tp);res.num[0]=tp/1000;res.num[1]=tp%1000/100;res.num[2]=tp%100/10;res.num[3]=tp%10; while(!q.empty()) q.pop(); bfs(); } return 0; }
相关文章推荐
- FreeBSD上构架Nginx服务器
- Linux下Squid正向/反向代理配置
- 一个国外的ios学习网站
- CentOS安装\卸载 apache、mysql、php
- Linux-Nginx-Rewrite规则-1
- linux 的文件系统(2)
- Linux下使用MySQL——忘记root密码及修改MySQL默认编码
- 快速获得服务器基本信息(debian centos)shell脚本
- Linux下使用MySQL——忘记root密码及修改MySQL默认编码
- CentOS 5.5安装SVN(Subversion)
- find选项详解
- Linux ubuntu
- CentOS 解决中文乱码问题
- 左手linux+gdb,右手unity+vs,一个bit一个bit地去调试是种什么体验
- windows linux mac os 区别
- 高并发高流量的大型网站架构设计
- “谁是大V”算法设计 (Map-Reduce TopN)
- Linux 套接字(1)
- AM池监控打印
- hadoop5--mapreduce设计模式