水題 water (非詳細解答)

2022-05-05 14:36:12 字數 1943 閱讀 1306

傳送

時間限制:c/c++ 1秒,其他語言2秒 空間限制:c/c++ 32768k,其他語言65536k

64bit io format: %lld

題目描述

其中,f(1)=1;f(2)=1;z皇后的方案數:即在z×z的棋盤上放置z個皇后,使其互不攻擊的方案數。

輸入描述:

輸入資料共一行,兩個正整數x,m,意義如「題目描述」。

輸出描述:

乙個正整數k,表示輸出結尾0 的個數或者放置皇后的方案數

示例1

輸入

375

16

輸出

14200
說明

題解:看了一陣子沒明白,也是從其他人那學完之後,自己總結著再寫

這個題內含三個小題:

1.判斷是否存在k使得f(k)=xf(k)=x

2.n!在m進製下末尾零的個數

3.z皇后方案數

解答:(非詳細)

1.f函式其實就是斐波那契數列

斐波那契數列平方和的性質:(就是題目中所給公式)

2.求n!在m進製的末尾0個數

首先乙個結論:n!的質因子p的個數等於:1~n中p的倍數(n/p)加上(n/p)!中質因子p的個數

然後:寫出

將數w轉化成m進製的末尾0的個數

的暴力**是:

while

(w%m==0)

//tot計數

可以得到 w=a * mtot(n是mtot的倍數)

末尾幾個0,tot就是幾(tot是記錄末尾0

的數量)

我們看 n ! 最多可以分解出多少個m

質因數 pi

設m=p1

a1 *p2

a2 *…*pk

akw = n!

n!= a * m tot

n!=a * (p1

a1 *p2

a2 *…*pk

ak)tot

n!=a * p1

b1 *p2

b2 *…*pkbk

bk=ak *tot

求出!x最多可以分解出多少個pi

tot=min(bk/ak)

列舉k

ll prime[maxn]=;

ll getsum

(ll n,ll m)

return sum;

}//n!的質因子p的個數

void

ans_solve()

}for

(int i=

1;i<=

25;i++)}

for(

int i=

1;i<=

25;i++

) cout<

}

3.求z皇后方案數

z=x%min(13,m)+1

根據式子就能得到z的範圍在1~13,範圍不大直接打表就可以

ll dabiao()

cout<< z[x%

min(13*

1ll,k)+1

];

水 water 積水問題 蓄水問題

題目描述 有一塊矩形土地被劃分成 n m 個正方形小塊。這些小塊高低不平,每一小塊都有自己的高度。水流可以由任意一塊地流向周圍四個方向的四塊地中,但是不能直接流入對角相連的小塊中。一場大雨後,由於地勢高低不同,許多地方都積存了不少降水。假如你已經知道這塊土地的詳細資訊,你能求出每個小塊的積水高度嗎?...

字尾陣列水水水水水水題

首先 jxrjxrjxr orz,沒有您我們都會死 然後就是我從jxr神犇那裡借鑑 照抄 過來的字尾陣列模板。include include include define cmp x y sa i x y sa i 1 x using namespace std const int n 100000...

水題)簡單題

problem 2183 簡單題 現在有一些被簡單壓縮的字串,例如 a 120 代表120個a。對於字串acb 3 d 5 e相對於acbbbddddde 現在給你兩個字串cstring,nstring.乙個是被壓縮過的字串,另乙個沒有被壓縮。求nstring是否為cstring的子串,如果是輸出t...