日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 1175 连连看

發布時間:2024/4/17 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 1175 连连看 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

“連連看”相信很多人都玩過。沒玩過也沒關系,下面我給大家介紹一下游戲規則:在一個棋盤中,放了很多的棋子。如果某兩個相同的棋子,可以通過一條線連起來(這條線不能經過其它棋子),而且線的轉折次數不超過兩次,那么這兩個棋子就可以在棋盤上消去。不好意思,由于我以前沒有玩過連連看,咨詢了同學的意見,連線不能從外面繞過去的,但事實上這是錯的。現在已經釀成大禍,就只能將錯就錯了,連線不能從外圍繞過。? 玩家鼠標先后點擊兩塊棋子,試圖將他們消去,然后游戲的后臺判斷這兩個方格能不能消去?,F在你的任務就是寫這個后臺程序。?

Input

輸入數據有多組。每組數據的第一行有兩個正整數n,m(0<n<=1000,0<m<1000),分別表示棋盤的行數與列數。在接下來的n行中,每行有m個非負整數描述棋盤的方格分布。0表示這個位置沒有棋子,正整數表示棋子的類型。接下來的一行是一個正整數q(0<q<50),表示下面有q次詢問。在接下來的q行里,每行有四個正整數x1,y1,x2,y2,表示詢問第x1行y1列的棋子與第x2行y2列的棋子能不能消去。n=0,m=0時,輸入結束。? 注意:詢問之間無先后關系,都是針對當前狀態的!?

Output

每一組輸入數據對應一行輸出。如果能消去則輸出"YES",不能則輸出"NO"。?

Sample Input

3 4 1 2 3 4 0 0 0 0 4 3 2 1 4 1 1 3 4 1 1 2 4 1 1 3 3 2 1 2 4 3 4 0 1 4 3 0 2 4 1 0 0 0 0 2 1 1 2 4 1 3 2 3 0 0

Sample Output

YES NO NO NO NO YES 題意:中文題,不解釋。 用dfs好麻煩,但也能做出來,具體要怎么做就看代碼。這dfs不好解釋啊。 #include<cstdio> #include<cstring> using namespace std; int n,m,p,ex,ey; int s[1005][1005]; int v[1005][1005]; int yi[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; void dfs(int x,int y,int k,int sx,int sy) {if (p==1||k==3) return ;for (int i=0;i<4;i++){int rx=x+yi[i][0];int ry=y+yi[i][1];if (rx==ex&&ry==ey){if (k<2) {p=1;return ;}if ((sx==yi[i][0]&&sy==yi[i][1])&&k==2) {p=1;return ;}}if (rx>=1&&rx<=n&&ry>=1&&ry<=m&&!v[rx][ry]&&!s[rx][ry]){v[rx][ry]=1;if ((sx==0&&sy==0)||(sx==yi[i][0]&&sy==yi[i][1])) dfs(rx,ry,k,yi[i][0],yi[i][1]);else dfs(rx,ry,k+1,yi[i][0],yi[i][1]);v[rx][ry]=0;}}} int main() {int i,j,q,a,b,c,d;while (~scanf("%d%d",&n,&m)){if (n==0&&m==0) break;for (i=1;i<=n;i++)for (j=1;j<=m;j++) scanf("%d",&s[i][j]);scanf("%d",&q);while (q--){p=0;memset(v,0,sizeof(v));scanf("%d%d%d%d",&a,&b,&c,&d);if (s[a][b]!=s[c][d]||s[a][b]==0) {printf("NO\n");continue;}ex=c;ey=d;dfs(a,b,0,0,0);if (p) printf("YES\n");else printf("NO\n");}}return 0; }

?

轉載于:https://www.cnblogs.com/pblr/p/4696678.html

總結

以上是生活随笔為你收集整理的HDU 1175 连连看的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。