浩晨众云网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
2 // 测试数据个数
6 1 3 // 棋盘大小 蛇的个数 梯子个数
35 25 // 蛇的起始位置(蛇头) 蛇的终止位置(蛇尾)
3 23 5 16 20 33 梯子起始位置(梯子底部) 梯子终止位置(顶部)
样例输出:
3
#include
#include
#define NMAX 20
#define SLMAX 200
struct SnakeAndLadder //蛇和梯子{
int from, to; //起止位置};
int main( )
{
int D; //测试数据的个数 int N, S, L; //每个测试数据中的N、S、L:棋盘规模、蛇和梯子数目 int grid[ NMAX*NMAX+1 ]; //棋盘(序号从1开始计)
//备份上一次棋盘状态(序号从1开始计) int gridbak[ NMAX*NMAX+1 ];
SnakeAndLadder obstacle[2*SLMAX ]; //障碍物,包括梯子和蛇 int i, j, k, m; //循环变量 int step; //投骰子的数目 int deal; //如果落脚处是蛇(惩罚)首部或梯子(奖励)底部,则deal为1
scanf("%d", &D );
for( i=0; iN*N )break;
for( m=0; m