JZOJ 省選模擬 6640 Lowbit

2021-10-06 10:01:10 字數 1829 閱讀 8385

一行一共 5 個整數 p, a, b, l, r,意義如題。

19解釋:

f[1] = 2/1, f[2] = 2/1, f[3] = 3/1, f[4] = 2/1, f[5] = 7/2, f[6] = 3/1, f[7] = 7/2加起來 = 19。

考慮p=2只求乙個數怎麼做

發現 x 會走到的點只有 log個。

設 dp[i][0/1] 表示 x 的前 i 位 = 0 了,0/1 表示是否有進製,這個數的 f 值。

初值dp[inf][1]=1/(1-a/b)

再套乙個數字dp+整體轉移即可

考慮如何推廣到p>=2

可以發現兩者的dp是一樣的

我們只需要預處理出

p0[x]:最低位 = x,最後到 0 的概率。

p1[x]:最低位 = x,最後進製的概率。

f0[x]:最低位 = x,到 0 或進製前走的期望步數。

#include

#define fo(a,b,c) for (a=b; a<=c; a++)

#define mod 998244353

#define ll long long

using

namespace std;

const

int n=

1e5+77;

ll s,a,b,l,r,ans,s,f[n]

,g[n]

,p1[n]

,p2[n]

;int p,i,j,k,l,tot;

map hs;

map::iterator i;

ll power

(ll x,ll t)

return b;

}ll work

(ll t)

void

work1

(int t,ll k,ll b)

void

work2

(int t,ll k,ll b)

void

work3

(int t,ll k,ll b)

intmain()

fo(i,

1,p-

1) g[i]

=(g[i]

+g[i-1]

)%mod;

printf

("%lld\n",(

(work

(r)-

work

(l-1))

%mod+mod)

%mod)

;}

JZOJ 省選模擬 string

一行乙個整數表示答案。sample input 樣例輸入 3 3sample output 樣例輸出 首先我們忽略重複的字串,定義 n 表示長度為 n 的回文串,或由兩個回文串拼成的字串數量。那麼可以通過列舉第乙個回文串的長度 可以為 0 可以算出f n 但是正如剛才所說,會對如 abaaba 這樣...

JZOJ 省選模擬 Moorio Kart

description 由於目前可供奶牛們使用的約會 並沒有給 farmer john 留下深刻印象,他決定推出乙個基於新匹配演算法的奶牛交友 該演算法可基於公牛和母牛間的共同興趣對公牛和母牛進行匹配。bessie 在尋找情人節 barn dance 的合作夥伴時,決定試用這個 在註冊賬戶之後,fj...

JZOJ 省選模擬 挖寶

description 有乙個挖寶遊戲,它在一棵 n 個點的樹上進行,寶藏埋在某個未知的點 每次挖掘乙個點 u,玩家得到的反饋資訊是乙個數值 d,表示 u 號點到 號點簡單路徑上的邊數。這個遊戲會進行 q 次,每次遊戲藏寶的位置不一定相同。你作為一名優秀的 er,對自己無比自信。你希望用最少的挖掘次...