有乙個每條邊都不相等的n
nn邊形,有m
mm種顏色。我們要給每條邊塗上顏色使得相鄰的兩條邊都不相等,求總方案數。
設f
if_i
fi為i
ii條邊時的答案,那麼:fi=
mi−f
i−
1f_i=m^i-f_
fi=mi
−fi−
1,代表用總的方案數減去不合法的方案數。
從f i−
1f_
fi−1
加一條邊有m
im^i
mi種方法。不合法的方案:我們把新加的邊和它相鄰的一條邊看成顏色相同的同一條邊,這是不合法的,這種方案數有fi−
1f_
fi−1種。
然後可以發現:
f i=
mi−(
mi−1
−(mi
−2−f
i−3(
f_i=m^i-(m^-(m^-f_(
fi=mi
−(mi
−1−(
mi−2
−fi−
3(…一直到1))))
)),然後一直到1
11,我們就可以發現其中的規律:
f n=
(m−1
)n+(
m−1)
∗(−1
)n
f_n=(m-1)^+ (m - 1) * (-1)^n
fn=(m
−1)n
+(m−
1)∗(
−1)n
#include
const
int p =
1e9+7;
long
long n;
int m;
intpower
(int a,
long
long b)
return result;
}int
main()
HDU 4248 DP與組合數學
include include const int maxn 110 const int mod 1e9 7 int c maxn maxn maxn num maxn long long dp maxn maxn maxn int n,kase void init int main int arg...
公牛數學 jzoj 1896
題目描述 公牛在數學方面比奶牛強很多,他們自稱可以計算很大的整數之間的乘法,並得到精確的結果。農夫約翰想知道他們的答案是否正確。請你幫助他檢查公牛的答案。讀入2個正整數 不大於10 40 計算他們的乘積,輸出乙個自然數 不能含有多餘的零 約翰農夫讓你自己做這個工作。輸入 第1.2行 每行包含乙個十進...
數學 (JZOJ) 普及模擬 單元格
題目描述 在乙個r行c列的 裡,我們要選出3個不同的單元格。但要滿足如下的兩個條件 1 選中的任意兩個單元格都不在同一行。2 選中的任意兩個單元格都不在同一列。假設我們選中的單元格分別是 a,b,c,那麼我們定義這種選擇的 費用 f a b f b c f c a 其中f a b 是指單元格a到單元...