問題 d: 水果消除
時間限制: 2 sec 記憶體限制: 128 mb
提交: 188 解決: 71
[提交][狀態][討論版]
題目描述
「水果消除」是一款手機遊戲,相信大家都玩過或玩過類似的遊戲。
下面是「水果消除」遊戲的一種初始狀態。
消除的基本規則:如果有2個或2個以上的相同水果連在一起,則可以點選並消除。
請問在某一種狀態下,有幾種可以點選並消除的選擇方案。
例如,對於上圖所示的初始狀態,將有6種點選並消除的選擇方案。這6種方案依次如下圖所示。
輸入 先輸入乙個整數n,表示放水果的格仔總數為n*n。n取3到1000之間的整數(含3和1000)。
然後依次輸入n*n個表示水果的資料,不同的水果用不同的數字表示,同一種水果用相同的數字表示。
表示水果的數字編號從1開始,不超過100。
輸出在輸入資料對應的初始狀態下,有幾種點選並消除的選擇方案。
輸出方案數。
樣例輸入
61 1 2 2 2 2
1 3 2 1 1 2
2 2 2 2 2 3
3 2 3 3 1 1
2 2 2 2 3 1
2 3 2 3 2 2
樣例輸出
6提示
//求連通塊,如果連通塊已經有2個 則方案數+1
#include
int a[1001][1001];
int b[1001][1001]={};
char c[1000002]={};
int n,ans=0; //計數
void dfs(int i,int j,int ans,int id)
//過程中計數
dfs(i-1,j,ans,id);
dfs(i,j-1,ans,id); dfs(i,j+1,ans,id);
dfs(i+1,j,ans,id);
}void handle()
int main()
// for(int i=1;i<=n;i++,putchar('\n'))
// for(int j=1;j<=n;j++) printf("%d ",a[i][j]);
//printf("**
****
****
****
****
****
*limit1
****
****
****
****
****
***\n");
春季聯賽,dfs水題(思路)
對於n 個數,從中取出 m個數,如何取使得這 m個數的乘積最大呢?第一行乙個數 t表示資料組數。每組輸入資料共2行 第1行有 2個整數n m,1 m n 15,第2 行有n個整數,其中每個數的絕對值小於等於4。對每組資料,輸出 1行,為最大的乘積值。15 51 2 3 4 248 向倫神學習簡潔的 ...
hdu 5423 樹上dfs 水題
給你一顆樹,問是否存在節點深度全部相同但存在某個節點的父親不同的 求每乙個深度的節點個數,只要存在乙個深度有超過乙個的節點並且下乙個深度有節點存在,就滿足了上述的條件 include include include include include include include include in...
D 棋盤問題 dfs經典題 poj1321
在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...