JZOJ 5810 簡單的玄學

2022-05-31 01:48:15 字數 980 閱讀 4520

思路:

就是考慮乙個結論

對於\(1<=x<=2^n\),那麼\(x\)與\(2^n - x\)中的2的個數相等。

證明:我們將\(x\)表示成\(2^k*b\),那麼\(2^n - x\)就是\(2^n - 2^k*b\)當消去\(k\)個2之後,剩下的就是\(2^n - b\)顯然不能被2除了(因為b顯然不是乙個偶數),

那麼我們推出來的概率式子為:

\(1 - ^ i\over 2^}\)

問題的瓶頸就是如何求分子的2的個數,應用上面的結論可以將分子化為:

如何求\((m-1)!\)裡的2的個數。

簡單了,隨便列舉一下就可以了。

值得一提的是,這題的資料範圍有毒,考慮到當\(m > mod\)時,顯然取模為0,所以出題人很好心的沒有給\(10^\)的點。

**我不知道為什麼老是**...

#include using namespace std;

#define ll long long

const int mod = 1e6+3;

inline ll pow_mod(ll a,ll b)

return res;

}ll n,m;

ll ans;

int main ()

if(log2(m) > n)

ll t1 = pow_mod(2,n);

ll t2 = pow_mod(t1,m-1);

for(int i = 1;i < m; ++i)

} ll fz = 1;

for(int i = 1;i < m; ++i)

fz /= pow(2,ans);

ll fm = pow_mod(2,n*(m - 1) - ans);

printf("%lld %lld\n",(fm - fz)%mod,(fm)%mod);

return 0;

}

馬力太弱。。

JZOJ5728 簡單計數

乍一看不是很會。先考慮不是環怎麼做。考慮分類地計數,即把方案歸到某一型別裡,再分別計算每乙個型別的數量來求答案。最終一種方案肯定有若干段相同顏色段,我們可以直接考慮每一種顏色的劃分貢獻,然後再算出他們組合起來的方案數。具體地,我們計算出f i,j 表示把i個相同的球分成j段的貢獻和,一種方案貢獻為每...

jzoj 5562 簡單構造

description 一次歌唱比賽中,一位歌手剛剛結束表演,評委正在打分。一共有n 位評委,他們每人可以打1 分或0 分,第i 位評委希望歌手的得分為v i 評委們有特殊的控分技巧,他們會按乙個順序依次評分,第乙個評分的評委 會不管三七二十一打0 分。對於接下來的評委,假設前面a 位評委評分總和為...

jzoj 5561 簡單模擬

description 很久很久以前,有乙個1 n 的排列a,還有乙個長度為q 的,每個元素在1 到n 之間的序列b 0 b q 1 作為一道簡單模擬題,你需要模擬m 次操作,第i 1 到m 次操作你會在 a 中找到值為b i 1 q 的元素,並把它與第乙個元素交換。你只需要輸出m 次操作之後的序列...