水叮噹得到了一塊五顏六色的格仔形地毯作為生日禮物,更加特別的是,地毯上格仔的顏色還能隨著踩踏而改變。
為了討好她的偶像虹貓,水叮噹決定在地毯上跳一支輕盈的舞來賣萌~~~
地毯上的格仔有n行n列,每個格仔用乙個0~5之間的數字代表它的顏色。
水叮噹可以隨意選擇乙個0~5之間的顏色,然後輕輕地跳動一步,地毯左上角的格仔所在的聯通塊裡的所有格仔就會變成她選擇的那種顏色。這裡連通定義為:兩個格仔有公共邊,並且顏色相同。
由於水叮噹是施展輕功來跳舞的,為了不消耗過多的真氣,她想知道最少要多少步才能把所有格仔的顏色變成一樣的。
每個測試點包含多組資料。
每組資料的第一行是乙個整數n,表示地攤上的格仔有n行n列。
接下來乙個n*n的矩陣,矩陣中的每個數都在0~5之間,描述了每個格仔的顏色。
n=0代表輸入的結束。
對於每組資料,輸出乙個整數,表示最少步數。
2 0 0
0 0
3 0 1 2
1 1 2
2 2 1 00
3對於30%的資料,n<=5
對於50%的資料,n<=6
對於70%的資料,n<=7
對於100%的資料,n<=8,每個測試點不多於20組資料。
#include
#include
#include
#include
#include
#include
using
namespace
std;
int n,ans,a[10][10],fx[4][2]=,,,},v[10][10];
bool bz[10],f;
void cg1(int x,int y)
}void change(int x,int y)
}
}void gd(int x)
}void dg(int x)
if (x+m>ans) return;
if (m==0)
int b[10],l=0;
memset(bz,false,sizeof(bz));
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (v[i][j]==2 && !bz[a[i][j]])
int v1[10][10];
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++) v1[i][j]=v[i][j];
for (int i=1;i<=l;i++)
}int main()
printf("%d\n",ans);
scanf("%d\n",&n);
}return
0;}
NOIP2013模擬 水叮噹的舞步
description 水叮噹得到了一塊五顏六色的格仔形地毯作為生日禮物,更加特別的是,地毯上格仔的顏色還能隨著踩踏而改變。為了討好她的偶像虹貓,水叮噹決定在地毯上跳一支輕盈的舞來賣萌 地毯上的格仔有n nn行n nn列,每個格仔用乙個 0,5 0,5 0,5 的數字代表它的顏色。水叮噹可以隨意選擇...
NOIP2013模擬 水叮噹的舞步
水叮噹得到了一塊五顏六色的格仔形地毯作為生日禮物,更加特別的是,地毯上格仔的顏色還能隨著踩踏而改變。為了討好她的偶像虹貓,水叮噹決定在地毯上跳一支輕盈的舞來賣萌 地毯上的格仔有n行n列,每個格仔用乙個0 5之間的數字代表它的顏色。水叮噹可以隨意選擇乙個0 5之間的顏色,然後輕輕地跳動一步,地毯左上角...
模擬 NOIP 2013 花匠
花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g 1,g ...