也許更好的閱讀體驗
\(\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...