link
/*
陣列沒開夠,爆零兩行淚
longlong開成int,爆零兩行淚
多組忘清空,爆零兩行淚
dp 沒初值,爆零兩行淚
深搜沒邊界,爆零兩行淚
廣搜忘出隊,爆零兩行淚
輸入沒加 &,爆零兩行淚
模數沒看見,爆零兩行淚
-1 不輸出,爆零兩行淚
越界不特判,爆零兩行淚
線段樹開一倍,爆零兩行淚
無向變有向,爆零兩行淚
題意沒審清,爆零兩行淚
檔名起錯,爆零兩行淚
除錯忘刪除,爆零兩行淚
沒用freopen,爆零兩行淚
*/#include
using namespace std;
const
int n=
100010
,mod=
5000011
;int n,k;
int f[n]
,s[n]
;int
main()
cout<
}/*約翰要帶n只牛去參加集會裡的展示活動,這些牛可以是牡牛,也可以是牝牛。
牛們要站成一排,但是牡牛是好鬥的,為了避免牡牛鬧出亂子,約翰決定任意兩隻牡牛之間至少要有 k 只牝牛。
請計算一共有多少種排隊的方法,所有牡牛可以看成是相同的,所有牝牛也一樣,答案%5000011。
思路:
計數經典題,考慮用1代替牡牛,0代替牝牛
f(i)以1結尾表示前i位的排隊方案數
把前i頭牛分成i-k類,(0,1,......i-k-1)表示第某位是1,後面都是零,如***xx10001
注意i-k-1的特判
則顯然f(i)=σj從1到j-k-1,f(j)
複雜度o(n^2)
考慮優化,用s記錄字首和,求f的同時處理s
複雜度o(n)
*/
bzoj 3398 牡牛和牝牛
牝 pin 4聲 母的意思。牡 mu 3聲 公的意思。看到這些字我直接愣了,其實放在牝雞司晨和牡蠣這兩個詞裡我絕對能認出來。是不是該去頹語文了?這道題f i 表示最後乙個是公牛的方案數,sigma f j j問題是hzwer用了奇怪的排列組合。這道題可以用隔板法,設abcd是放公牛的位置,那麼a,b...
BZOJ3398 牡牛和牝牛
time limit 1 sec memory limit 128 mb submit 440 solved 301 約翰要帶n 1 n 100000 只牛去參加集會裡的展示活動,這些牛可以是牡牛,也可以是牝牛 牛們要站成一排 但是牡牛是好鬥的,為了避免牡牛鬧出亂子,約翰決定任意兩隻牡牛之間至少要有...
組合數學 牡牛和牝牛
約翰要帶 n 只牛去參加集會裡的展示活動,這些牛可以是牡牛,也可以是牝牛。牛們要站成一排,但是牡牛是好鬥的,為了避免牡牛鬧出亂子,約翰決定任意兩隻牡牛之間至少要有 k 只牝牛。請計算一共有多少種排隊的方法,所有牡牛可以看成是相同的,所有牝牛也一樣,答案對 5000011 取模。輸入格式 一行,輸入兩...