數學專項number theory LA 2955

2021-06-16 21:15:40 字數 554 閱讀 5566

一道關於梅森素數的題,這裡需要先得出乙個猜想,那就是只有梅森素數的一次冪的乘積的因子之和才能為2的次冪。這個猜想我不會證明,我只是測了下前100個素數,然後就覺得這個猜想應該是正確的,結果也確實如此。(求數學帝證明)

2^31內僅有8個梅森素數,只要將每個pi因式分解,直接剔除那些既不是梅森素數,也不是梅森素數乘積的數,注意梅森素數的冪次不能超過1,所以必須選擇剩下的可行的數的組合使得到的2的冪次最高,通過乙個2維dp很容易得到。

#include #include #include #include using namespace std;

typedef long long ll;

int mersome[8]=;

int p[8]=;

int st[110],val[110];

int dp[110][1<<10];

int vis[110][1<<10];

int c;

int dfs(int dep,int state)

int main()

else if(tmp==1)

{s^=(1<

數學專項matrix UVa 11149

典型的倍增法的應用,這裡我用了遞迴的方式實現,這樣比較直觀,也比較好寫 主要是因為迭 的一直wa 注意輸入的時候需要取模。include include include using namespace std const int maxn 50 typedef int matrix maxn max...

數學專項number theory LA 3262

題意就是找出n 1 n 65536 的乙個倍數,要求組成該數的不同數 0 9 最少,多解時,輸出最小的。學過離散的都知道,通過鴿巢原理,組成解的不同數最多為2,且每種組合最多經歷n個狀態,所以暴力列舉所有組合的複雜度為65536 100,完全可以接受。這裡需要自己手寫乙個高精度類以比較大數,先列舉乙...

樹狀陣列專項

poj 2352 此題一開始理解錯了乙個地方,而且一開始也沒很好的理解樹狀陣列,做了很長時間。其實此題的輸入是有規律的,即一直按照x,y遞增的規律。所以,判斷第i個輸入,只需要判斷 前i 1個元素中x的值,而不用考慮y,因為y一直是遞增輸入的。所以用乙個樹狀陣列來處理x即可。include incl...