牛客等級之題N1 8 3 數論遞推通項公式)

2022-07-21 19:09:14 字數 1085 閱讀 7311

有乙個箱子,開始時有n個黑球,m個藍球。每一輪遊戲規則如下:

第一步:奕奕有p的概率往箱子裡新增乙個黑球,有(1-p)的概率往箱子裡新增乙個藍球。

第二步:華華隨機從箱子裡取出乙個球。

華華喜歡黑球,他想知道k輪遊戲之後箱子裡黑球個數的期望。

輸入五個整數n,m,k,a,b。

1<=n,m<=1e6,1<=k<=1e9

其中p=ab\fracba​,且a<=b,0<=a<1e9+7,0

輸出乙個數表示k輪遊戲後箱子裡黑球個數的期望。

輸出乙個整數,為答案對1e9+7取模的結果。即設答案化為最簡分式後的形式為ab\fracba​,其中a和b互質。輸出整數 x 使得bx≡a(mod 1e9+7)且0≤x<1e9+7。可以證明這樣的整數x是唯一的。

示例

2 2 1 1 2

2

2 2 2 3 10

184000003
題解:關於這個題首先要抓住乙個重點,就是每一輪過後,期望就會發現變化,即:

相鄰兩輪遊戲後的期望值是有乙個遞推關係的

假設第k輪後黑球數量的期望是a[k]

#include #define inf 0x3f3f3f3f

using

namespace

std;

typedef

long

long

ll;const

int maxn=5e5+7

;const ll mod =1e9+7

;ll mul(ll a, ll b)

a = (a+a)%mod;

b = b>>1

; }

return

ans;

}ll quickpow(ll a, ll b)

base = mul(base, base)%mod;

b = b>>1

; }

return

ans;

}int

main()

view code

牛客等級之題N2

目錄牛客等級之題n2 8.3場 設大半圓的半徑為 r 左小半圓半徑為 r r kr 0 pi r 2 pi k 2r 2 pi r kr 2 2s r 2 k k 2 frac k frac 時 r 2 最小 include using namespace std const double pi a...

牛客等級之題N1(8 4場)購物

題目鏈結 在遙遠的東方,有一家糖果專賣店。這家糖果店將會在每天 一些糖果,它每天都會生產出m個糖果,第i天的第j個糖果 為c i j 元。現在的你想要在接下來的n天去糖果店進行選購,你每天可以買多個糖果,也可以選擇不買糖果,但是最多買m個。因為最多隻生產m個 買來糖果以後,你可以選擇吃掉糖果或者留著...

牛客等級之題N1(8 13場)3的倍數

最容易想到的辦法是通過記錄每個字串中每個字母出現的次數,然後將所有n個字串進行各種組合,確定最多可選擇的字串數。但是這樣的複雜度為2的n次方,肯定不行。所以想到用類似於字首和的方式,遍歷所有字串過程中,判斷當前遍歷到的字串的狀態與之前某位置字串狀態是否相同。對於狀態而言,可以用狀壓來完成,實際上也就...