六邊形平面

2021-08-15 16:20:35 字數 1515 閱讀 1280

現在有乙個n*n的六邊形網格平面(這種平面類似蜂窩形狀)。下圖是n=1,2,3,4條件下的具體形狀,根據它們可以依次類推n=5,6,....。

現在你需要對n*n網格中一些格仔進行上色,在給定的輸入中這些格仔被標記上字元『x』,而不用上色的網格被標記為『-』。上色時需要注意,如果兩個被上色的格仔有公共邊,那麼這兩個格仔需要被塗成不同的顏色。問最少需要多少種顏色來完成任務?

input

多組測試資料,第一行乙個整數t,表示測試資料數量,1<=t<=5

每組測試資料有相同的結構構成:

每組資料第一行乙個整數n,表示網格大小,其中1<=n<=50.

之後有乙個n*n的字元矩陣a,其中a(i,j)為『x』表示網格中座標為(i,j)的格仔需要被上色,否則不用。

output

每組資料一行輸出,即最少需要的顏色數量.
input示例

3

3---

------

4-x--

---x

----

-x--

4***x

---x

---x

---x

output示例

0

1

#include #include #include using namespace std;

const int maxn = 55;

int t;

int n;

char a[maxn][maxn];

int result = 0;

bool circlefound = false;

int offsetx[6] = ;

int offsety[6] = ;

bool used[maxn][maxn];

void findoddcircle(int x, int y, int num, int firstx, int firsty)

}else if (used[x + offsetx[i]][y + offsety[i]])}}

}}void cal(int i, int j)

if ((i + 1 < n) && (a[i + 1][j] == 'x'))

if (!firfound && (i + 1 < n) && (j - 1 >= 0) && (a[i + 1][j - 1] == 'x'))

result = max(result, temp);

}int main()

}result = 0;

for (int j = 0; j < n; j++)}}

if (result < 3)}}

if (circlefound)}}

cout << result << endl; }

return 0;

}

2701 六邊形點陣

題目描述 description 輸入六邊形的邊長n,請你畫出這個六邊形點陣。輸入描述 input description 僅一行,乙個整數n 輸出描述 output description 六邊形點陣 有兩條邊水平 樣例輸入 sample input 6 樣例輸出 sample output 資料...

未知 六邊形 題解

接上題,反正是一起做的那麼故事情節也接上吧嘻嘻嘻 正好,帶我去一趟天線崖。你確定?你都說了都要暴雨了,前幾天的暴雨 是啊,你還抱怨整天悶在家裡啥事也沒幹呢,結果就剩下我在刷題而你整天再睡覺。因為山脈的阻隔,所以他們只能乘坐小船到達那裡。而給他們租小船的人,開出了很高的價錢,但是。你們幫我解決乙個問題...

HTML畫六邊形

1.方法1 上下兩個三角,中間乙個長方形 方法2 t 25deg,transparent 36px,rgb 76,184,233 0 bottom left background size 50 50 background repeat no repeat position absolute lef...