蛇梯棋(转载)
来源:互联网 发布:qq游戏大厅mac 编辑:程序博客网 时间:2024/05/29 06:54
1 //题目的大概意思是又N*N的棋盘,编号从1 到 N*N 棋盘中分布着蛇和梯子玩家在位置1处, 2 //然后掷骰子,如果点数在梯子尾则顺着梯子到达梯子头,若掷到蛇头,则滑到蛇尾 3 //问最快到达终点所需掷的次数... 4 // 输入描述: 1表示1组数据,6 1 3分别表示棋盘大小,蛇的个数和梯子的个数 5 //35 25 表示蛇的头和尾巴 最后一行表示各个梯子的头和尾 6 /* 7 1 8 6 1 3 9 35 2510 3 23 5 16 20 3311 */12 13 #include<stdio.h>14 #include<string.h>15 #define NMAX 2016 #define SLMAX 20017 struct SandL18 {19 int from,to;20 };21 int main()22 {23 int D,N,S,L;24 int grid[NMAX*NMAX+1];25 int gridbak[NMAX*NMAX+1];26 SandL jk[2*SLMAX];27 int n,i,j,k,m;28 int step,deal;29 scanf("%d",&D);30 for(i=0;i<D;i++)31 {32 scanf("%d%d%d",&N,&S,&L);33 for(j=0;j<S+L;j++)34 scanf("%d%d",&jk[j].from,&jk[j].to);35 memset(grid,0,sizeof(grid));36 grid[1]=1;37 step=0;38 while(grid[N*N]==0)39 {40 memcpy(gridbak,grid,sizeof(grid));41 memset(grid,0,sizeof(grid));42 for(j=1;j<N*N-1;j++)43 {44 if(gridbak[j]==0)45 continue;46 for(k=1;k<=6;k++)47 {48 deal=0;49 if(j+k>N*N)50 break;51 for(m=0;m<S+L;m++)52 if(jk[m].from==j+k)53 {54 grid[jk[m].to]=1;55 deal=1;56 break;57 }58 if(deal==0&&grid[j+k]==0)59 grid[j+k]=1;60 }61 }62 step++;63 }64 printf("%d\n",step);65 }66 return 0;67 }
0 0
- 蛇梯棋(转载)
- [转载]Word论文排版(转载)
- 【转载】互斥锁pthread_mutex_t的使用(转载)
- 我不是天使(转载)
- 成功法则(转载)
- 四舍五入函数(转载)
- SEO GUIDE(转载)
- wincvs笔记(转载)
- 相遇(转载)
- 回过头来(转载)
- (转载)经典辞职书
- 疯娘(转载)
- JAR用法(转载)
- 金城反击战(转载)
- 人生顿悟(转载)
- 关于女人(转载)
- 花样人生(转载)
- GPS是什么(转载)
- 对话框(第三方) dialogPlus
- 内核态和用户态的区别
- POJ 1270 Following Orders
- Java进阶(四十五)java 字节流与字符流的区别
- Eclipse闪退/打不开/无法启动/一闪而过打解决方法
- 蛇梯棋(转载)
- Java Executor并发框架(四)创建线程池的核心参数的解释
- Mysql 常用函数总结(日期操作函数)
- 学习笔记:斐波那契堆
- 配置Yum仓库
- Xcode8真机调试测试NSLog不输出日志
- 网站开发构建
- 洛谷P1772 [ZJOI2006]物流运输 题解
- 2016/10/08 上班第一天