思路:
就是考慮乙個結論
對於\(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 次操作之後的序列...