SCAU OJ題 10304 平面域著色

2021-10-01 04:16:29 字數 1173 閱讀 2557

10304 平面域著色

時間限制:1000ms 記憶體限制:1000k

提交次數:188 通過次數:53

題型: 程式設計題 語言: g++;gcc;vc

description

平面上有一點p,它是n個域d1、d2、……,dn的共同交點,

現取k種顏色對這n個域進行著色,要求相鄰兩個域著的顏色不同,求著色方案數。

這裡,2<=n<=10,1<=k<=9。

輸入格式

輸入:輸入兩個值:n和k。n為域的個數,k為顏色數

輸出格式

輸出:對n個域著色的方案數

如輸入3 3

輸出6若不存在可能的著色方案,輸出0。

輸入樣例

4 3輸出樣例

18提示

當對如圖的n個扇形域著色時,當n>=4時,都分為如下兩種情況考慮:

1)d1和dn-1同色

2)d1和dn-1不同色

當n>=4時,設an表示n個域用k種色的著色方案數(若可以著色的話):

(1)若d1與dn-1顏色相同,則dn有k-1種選擇

(2)若d1與dn-1顏色不同,則dn有k-2種選擇

當n>=4時則有: an=(k-2)an-1+(k-1)an-2

特別地有: a1=k, a2=k(k-1), a3=k(k-1)*(k-2)

為何此處的遞推公式要求n>=4呢?因為只有n>=4時,

d1和dn-1才不相鄰,上面的遞推才有效。

這題還得注意著色數為0的情況,即不能按要求著色。

當n=1時,只要k>=1,都可著色。

當n為 >=3的奇數,k須》=3,當1<=k<3(即k=1或2),不能著色。

當n為偶數時,只要k>=2,都可著色,若k=1,不能著色。

作者 zhengchan

version: 1

沒啥好說的,按著上面的提示照打。

#include

using

namespace std;

intpaint

(int n,

int k)

;int

main()

}if(n %2==

0)} cout<}int

paint

(int n,

int k)

}

SCAU OJ題 8601 最大長方體問題

時間限制 1000ms 記憶體限制 1000k 提交次數 0 通過次數 0 語言 not limited 描述乙個長,寬,高分別是m,n,p的長方體被分割成mnp個小立方體。每個小立方體內含乙個整數。試著設計乙個演算法,計算所給長方體的最大子長方體。子長方體的大小由它內部所含所有整數之和確定。約定 ...

平面解析幾何又一題

來自網路的一道題。如圖綠色部分,a ob是等腰直角三角形,o 0,0 為座標原點,a 4,0 b 0,4 m 是ab 中點。e 在 x軸正半軸上,f ob上。emf 45o。求使得 of ef 6 的e x,0 點橫座標 x 之值。看到有人用新增紅色輔助線的方法證明了一通,無視of ef 6就得到了...

折線分割平面 HDU 2050(數論 規律題)

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n 0output 對於每個測...