hdu 1372
来源:互联网 发布:fifa online3数据库15 编辑:程序博客网 时间:2024/04/30 09:02
写了太多的dfs,明天就要考试了,写个bfs。好久没有写bfs,有些细节都不熟悉了。
本题的意思就是在8X8的棋盘,马走日。其实就是迷宫的变形。不难。
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;class Point{int x, y;int step;boolean vis;public Point(int x,int y){this.x=x;this.y=y;}}public class Main{static int dir[][]=new int[][]{{-2,1},{-2,-1},{2,1},{2,-1},{-1,2},{-1,-2},{1,2},{1,-2}};static char start[],end[];static int bfs(Point sor, Point aim){Queue<Point> q=new LinkedList<Point>();q.offer(sor);while(!q.isEmpty()){Point pre=q.poll();if(pre.x==aim.x && pre.y==aim.y){return pre.step;}for(int i=0;i<8;i++){int x=pre.x+dir[i][0];int y=pre.y+dir[i][1];Point after=new Point(x, y);if(x>=0 && x<8 && y>=0 && y<8 && !after.vis){after.step=pre.step+1;after.vis=true;q.offer(after);}}}return 0;}public static void main(String[] args){Scanner cin=new Scanner(System.in);Point sor,aim;while(cin.hasNext()){start=cin.next().toCharArray();end=cin.next().toCharArray();sor=new Point(start[0]-'a',start[1]-'1');aim=new Point(end[0]-'a',end[1]-'1');int len=bfs(sor,aim);System.out.printf("To get from %s to %s takes %d knight moves.\r\n",String.valueOf(start),String.valueOf(end),len);}}}
记住java换行时候用“\r\n”,第一次就是因为这个PE了。
刚过9点,呵呵,再熟悉一下已经陌生的api。
祝自己明天好运!
- HDU 1372 HDU 1372
- hdu 1372
- hdu-1372
- hdu 1372
- hdu 1372
- hdu-1372
- hdu 1372
- HDU 1372
- HDU 1372 knight moves
- HDU 1372 Knight Moves
- HDU-1372-Knight Moves
- hdu 1372 Knight Moves
- HDU 1372 Knight Moves
- hdu 1372 Knight Moves
- Hdu 1372 Knight Moves
- HDU 1372 Knight Moves
- HDU 1372 Knight Moves
- HDU-1372Knight Moves
- 经典SQL语句大全(三)
- 数据存储
- GPS定位+谷歌地图应用的防盗定位设计
- 贪心算法(活动安排)
- 友善之臂视频监控方案源码学习(3) - 守护进程
- hdu 1372
- 几道有意思的面试题
- qt新阶段
- STL容器:deque
- java.lang.OutOfMemoryError: PermGen space
- DELPHI application.createForm
- Error setting expression 'rows' with value '[Ljava.lang.String;@的异常
- 数组对象Jquery真的不难~第五回 JQ中的遍历(遍历中的性能知识点)
- 集成性能基元(ipp)