挑戰賽16A 取石子 組合數學

2022-10-10 13:06:08 字數 868 閱讀 5356

取石子時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

題目描給出四堆石子,石子數分別為a,b,c,d。規定每次只能從堆頂取走石子,問取走所有石子的方案數。

輸入描述:

在一行內讀入四個由空格分隔的整數a,b,c,d, 輸入均為不超過500的正整數

輸出描述:

輸出乙個整數表示答案,答案對10^9+7

示例1輸入

3 5 4 2

輸出2522520

備註:輸入均為不超過500的正整數

題目分析:每堆石子內部的順序已經確定,只有堆之間的順序不確定,如果正面思考如何排序很難入手,反正最後都是要取出來放到一條線上,所以不如直接看作是在乙個線上取相應多少的石子到相應的堆中,種類數也就是c(a+b+c+d,a) *c(b+c+d,b) * c(c+d,c)=(a+b+c+d)!/(a!b!c!d!)。利用逆元進行取模即可

1 #include2 #include3

using

namespace

std;

4const

long

long mod=1e9+7;5

long

long qaq(long

longx)6

12return

ans;13}

14long

long mypow(long

long x,long

long

y)15

25return

ans;26}

27int

main()

28

view code

Wannafly挑戰賽24 A 石子遊戲

alice和bob在玩遊戲,他們面前有n堆石子,對於這些石子他們可以輪流進行一些操作,不能進行下去的人則輸掉這局遊戲。可以進行兩種操作 1.把石子數為奇數的一堆石子分為兩堆正整數個石子 2.把兩堆石子數為偶數的石子合併為一堆 兩人都足夠聰明,會按照最優策略操作。現在alice想知道自己先手,誰能最後...

Wannafly挑戰賽16 D 打怪(DP)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 有a種 b種屬性,和c種怪物。對於第k種怪物,給出 i和屬性j的搭配在乙個單位時間內對其造成的傷害h k,i,j。已知一開始使用 i,需要時間x i,使用屬性i,需...

Wannafly挑戰賽16 C 小球碰撞

標籤 數學 逆元 乙個彈球 可視為質點 被水平丟擲,落地時發生完全彈性碰撞,設彈球第一次落地位置為x,則第i次落地位置為 2i 1 x.若彈球第一次落地的位置在區間 l,r 均勻隨機分布,求彈球落在區間 l,r 內的總次數的數學期望值 可以證明答案為有理數,若答案表示為最簡分數為a b,則存在c使得...