牛客挑戰賽33 B 鴿天的放鴿序列

2022-02-27 05:19:11 字數 988 閱讀 4997

也許更好的閱讀體驗

\(\mathcal\)

定義乙個長為\(n\)的\(01\)序列\(a_1, a_2, \dots, a_n\)​的權值為\(\sum_^n ((\sum_^i a_j) \bmod 2)\),求有多少個長為\(n\)的\(01\)序列滿足有恰好\(k\)個\(1\),且權值最大。

答案對\(10^9+7\)取模。

\(\mathcal\)

顯然的兩個貪心

這樣得到的乙個序列的權值最大,其在大部分情況下是\(1\),只有\(\frac\)個是\(0\)

如果有偶數個\(1\),那麼就放乙個\(1\)在最後,這樣\(0\)只會出現這一次

方案數便考慮這些\(0\)出現的位置

即在一堆\(1\)後的空格內插入\(\frac\)個\(0\)

用組合數直接算即可

\(\mathcal\)

/*******************************

author:morning_glory

lang:c++

created time:2023年10月18日 星期五 19時01分41秒

*******************************/

#include #include using namespace std;

const int maxn = 1000006;

const int lim = 1000000;

const int mod = 1000000007;

int n,k,ans;

int fac[maxn],ifac[maxn],inv[maxn];

int c (int n,int m)

////}}}

int main()

如有**講得不是很明白或是有錯誤,歡迎指正

如您喜歡的話不妨點個贊收藏一下吧

牛客挑戰賽46 B最小的指數

傳送門題意 1e6次詢問,每次給你乙個1e18的數問你質因數分解後的所有質因數中的指數冪中最小的是多少。題解 將4000以下的素數預處理,然後分解n,若剩餘值等於1說明已完全分解,若大於1,也易知其剩餘最小質因數指數冪不超過4,便如下分類討論。1.若為4,則必為x 4 n 2.若為3,則必為x 3 ...

牛客挑戰賽46 B 最小的指數

給出乙個數 x 將它分解質因數成 prod p i a i 0 求 min a i t le 10 5 x le 10 pollard rho顯然過不去。先將 4000 以內的質數都暴力做一遍,如果遇到了 x 的因數計算一下。對於剩餘的質數,ans 不會大於等於 5 因為 4000 5 10 那麼 ...

牛客挑戰賽38 B 子串翻轉

題目鏈結 思路 用乙個大小為m雙端佇列的雙端佇列 維護一下當前視窗的串是啥。翻轉就是把標記變一下。根據標記進行字元的進出。include using namespace std typedef long long ll const int n 3e6 10 define fi first defin...