HDU 5363 快速冪 組合數公式

2021-09-24 05:47:34 字數 675 閱讀 5433

第一行輸入乙個t,(1≤t≤105) 表示有t次詢問。

每次詢問有乙個整數 n  , 表示乙個集合 1,2,3,...... n

問:這個集合中有幾個非空子集,這個子集的所有元素和是偶數。

輸出:滿足條件的子集的個數對1000000007 取模。

1.任意個偶數的和是偶數

2.偶數個奇數的和是偶數

3.任意個偶數+偶數個奇數的和是偶數

對於集合 ,設偶數有 a 個,奇數有 b 個。 所以下面公式把所有情況都包括了:

把上面公式化簡後是

然後要減去0個偶數0個奇數的情況

就是答案。

因為n很大, 所以要用到快速冪演算法

雖然有取模運算,但是中間的過程還是會超int,所以要用long long

下面是**:

#include #include using namespace std;

typedef long long ll ;

const int m = 1000000007;

const int n = 1e5;

int a[n + 1];

ll pow(int a, int b)

return ans;

}int main()

return 0;

}

hdu 5106 同餘定理 組合數學 快速冪

首先要取模,就要用到同餘模定理,具體不細講,只是在中間過程取模,防止溢位 在統計時考慮,逐位進行,因為不考慮數本身,所以每當遇到1時,考慮後面還需要n個 還剩多少m位,所以就有c m,n 個數,因為這些數的字首相同,所以最終結果可以通過字首 個數獲得這部分的和,然後考慮每個位上是 的情況是c m 1...

hdu 4565 推倒公式 矩陣快速冪

求下式的值 sn a b n m 其中 0 m 215 0n 231 a 1 2 b令 a n a b n b n a b n c n an bn 因為 a 1 2 b所以 0 b 1 所以 0 a b n 1 即 bn 1 也就是說,cn an sn cn 因此,求cn 就行了。cn 兩邊同時乘以...

bzoj1008越獄 組合數學 快速冪

problem 1008.hnoi2008 越獄 time limit 1 sec memory limit 162 mb submit 11735 solved 5087 submit status discuss 監獄有連續編號為1 n的n個房間,每個房間關押乙個犯人,有m種宗教,每個犯人可能信...