給出序列長度n和顏色數m,求出存在相鄰元素顏色相同的染色方案數。
正難反易
因為正向解決這個問題比較困難,所以我們可以將問題轉化為求出不存在相鄰元素顏色相同的染色方案數,然後用所有排列的情況減去。
對於序列中的每乙個人,只要和前乙個人的顏色不同就可以了,所以共有m-1種選擇。對於第乙個人無論選什麼顏色都可以,那麼就有m種選擇。
所以ans=m^n-m*(m-1)^(n-1)。
#include
#include
using
namespace
std;
const
int moder=100003;
int fstpow(int a,long
long k)
return val;
}int main()
BZOJ 1008 越獄(快速冪)
description監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 input 輸入兩個整數m,n.1 m 10 8,1 n 10 12 output 可能越獄的狀態數,模100...
bzoj1008 越獄 排列組合 快速冪
有n個有信仰的人,信仰共m種,每個人只有一種信仰,當兩個相同信仰的人遇到一起,他們便會逃走,求有多少中排列方式使得可能有人逃走,即存在兩個相同信仰的人相鄰,答案對100003取模。第一種 首先我我們考慮f i 代表前i個連續的人可能逃走的可能方案。當前面i 1個人中已經會有人逃跑了,第i個人的信仰就...
bzoj1008越獄 組合數學 快速冪
problem 1008.hnoi2008 越獄 time limit 1 sec memory limit 162 mb submit 11735 solved 5087 submit status discuss 監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信...