日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

泡泡龙

發(fā)布時(shí)間:2024/3/26 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 泡泡龙 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目描述
這是一個(gè)簡(jiǎn)化版的網(wǎng)絡(luò)游戲,在一個(gè)NN方塊構(gòu)成的棋盤(pán)中,每個(gè)方塊均涂上紅、黃、藍(lán)、綠(記為1、2、3、4)中的一種顏色,游戲者可以在最底行任意找一個(gè)方塊,用鼠標(biāo)雙擊這個(gè)方塊,于是該方塊及與之相鄰(即上、下、左、右四個(gè)方向上有公共邊)的所有的同色方塊均被消掉,因而下方失去支持的方塊將會(huì)自動(dòng)落下填補(bǔ)空位。樣例給出一個(gè)44的棋盤(pán)樣例,當(dāng)游戲者雙擊最底層左邊第二個(gè)方塊后,將會(huì)形成輸出結(jié)果的布局。
你對(duì)任務(wù)是編寫(xiě)一個(gè)泡泡龍模擬程序,對(duì)于給定的一個(gè)初始棋盤(pán),計(jì)算游戲者雙擊最底層某個(gè)方塊后棋盤(pán)的布局將會(huì)如何。

輸入
第1行有兩個(gè)正整數(shù)N和M(1<=M<=N<=100),其中N表示棋盤(pán)的規(guī)模,而M表示游戲者將雙擊最底層從左邊數(shù)起的第M個(gè)方塊。接下來(lái)的N行每行有N個(gè)1~4的整數(shù)組成,表示一個(gè)初始的棋盤(pán),同一行相鄰兩個(gè)數(shù)之間用一個(gè)空格隔開(kāi)。

輸出
N行,每行用N個(gè)數(shù)給出游戲結(jié)束后棋盤(pán)的布局,沒(méi)有方塊的格子用0表示,同一行相鄰的兩個(gè)數(shù)之間也用一個(gè)空格分開(kāi)。

輸入樣例
4 2
1 2 3 4
4 2 4 4
3 4 4 3
1 4 4 3

輸出樣例
1 0 0 0
4 0 0 0
3 2 0 3
1 2 3 3

思路
這道題的難點(diǎn)不在于如何消除方塊,而在于相除方塊后如何讓它往下掉

往下掉的這個(gè)步驟需要用到雙指針,簡(jiǎn)單解釋一下:
5
0
4
4
3
a → 3 ← b

將a指針向上移
5
0
4
4
a → 3
3 ← b
此時(shí)a指針上的數(shù)=b指針上的數(shù),b指針上移
一只這樣做,一單碰到空的將上面的填下來(lái),然后繼續(xù)上移

代碼

#include<iostream> using namespace std; int n, m, a[110][110], fx[4][2]{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; bool f[110][110]; void dfs(int x, int y) {int xx, yy;f[x][y] = true;for(int i = 0; i < 4; i++){ xx = x + fx[i][0];yy = y + fx[i][1];if(xx < 1 || xx > n || yy < 1 || yy > n || a[xx][yy] != a[x][y] || f[xx][yy])continue;dfs(xx, yy);} } int main() {ios :: sync_with_stdio(0);cin >> n >> m;for(int i = 1; i <= n; i++)for(int j = 1; j <= n; j++)cin >> a[i][j];dfs(n, m);//使方塊往下掉 for(int j = 1; j <= n; j++) //按照列循環(huán) {int p = n; //雙指針 for(int i = n; i >= 1; i--) //倒序循環(huán)列 if(!f[i][j])a[p--][j] = a[i][j];for(int i = p; i >= 1; i--)a[i][j] = 0; }for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++)cout << a[i][j] << " ";cout << endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的泡泡龙的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。