Advertisement

1347:【例4-8】格子游戏

阅读量:

例4-8

当所有参与者围成一个闭合的环状结构(无需面积为1)时,最后一个完成封圈操作的个体将成为胜者。由于棋盘规模较大(n ≤ 200),他们的游戏过程异常漫长,甚至在进行过程中都无法明确判断游戏是否已经结束。因此,请编写一个程序,用于判定游戏是否已经完成?
【输入

复制代码
 //示例代码

    
 #include <iostream>
    
 using namespace std;
    
 struct node{
    
 	int x,y;
    
 }f[305][305],a,b;
    
 int n,m;
    
 node root(node k){// 查找并返回集合k的根节点
    
 	if((f[k.x][k.y].x==k.x) && (f[k.x][k.y].y==k.y))
    
 		return k;// 当前节点是根节点时直接返回该节点
    
 	// 否则递归查找当前节点所在的集合的根节点,并记录路径上的每个节点的父节点指针,以便后面路径压缩
    
 	return f[k.x][k.y]=root(f[k.

全部评论 (0)

还没有任何评论哟~