HDU

您所在的位置:网站首页 连连看规则 HDU

HDU

2023-08-14 17:41| 来源: 网络整理| 查看: 265

HDU - 1175 连连看

“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋盘上消去。不好意思,由于我以前没有玩过连连看,咨询了同学的意见,连线不能从外面绕过去的,但事实上这是错的。现在已经酿成大祸,就只能将错就错了,连线不能从外围绕过。 玩家鼠标先后点击两块棋子,试图将他们消去,然后游戏的后台判断这两个方格能不能消去。现在你的任务就是写这个后台程序。 Input 输入数据有多组。每组数据的第一行有两个正整数n,m(0 int m,n,i,j,dis[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; while(cin>>m>>n&&m>0&&n>0) { for(i=1;i cin>>a[i][j]; } } int q; cin>>q; while(q--) { int k1,k2,t1,t2; int arr=0; cin>>k1>>t1>>k2>>t2; if(a[k1][t1]!=a[k2][t2]||a[k1][t1]==0||a[k2][t2]==0||(k1==k2&&t1==t2)) { printf("NO\n"); continue; } for(i=1;i ma[i][j]=a[i][j]; } } queues; weizhi start; start.x=k1,start.y=t1; s.push(start); while(s.size()) { weizhi b,d; b=s.front(); s.pop(); for(i=0;i continue; } if(b.x!=k1||b.y!=t1) { if((d.x-b.x)!=(b.x-b.x1)||(d.y-b.y)!=(b.y-b.y1)) { d.ans=b.ans+1; } else d.ans=b.ans; } if(d.x>=1&&d.x=1&&d.y arr=1; while(s.size()) { s.pop(); } break; } } } if(arr==1) printf("YES\n"); else if(arr==0) printf("NO\n"); } } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3