5695 N 次操作後的最大分數和

2021-10-22 18:30:59 字數 387 閱讀 4800

看到範圍應該想到dfs或者狀壓。

那麼為什麼想狀壓,而不是dfs呢?

首先dfs的話存在大量重複的可能。

就是假設你前面都不一樣,但是到了後面的某一次操作選是一樣的

那其實最後一部分要去計算多次而已,但是跑dfs的話,前面一樣的操作會大量的進行。

dp[sta]表示當前選了的數字的二進位制串為st時候的最大值。

那麼轉移也很簡單,我們從sta這個二進位制串中去掉任意兩個,列舉上乙個二進位制串last

那麼last其實就是sta ^ (1<

}for

(int st=

1;st<

1<}}

}return dp[(1

<];}}

;

N 後0的個數

問題描述 給定引數n n為正整數 請計算n的階乘n!末尾所含有 0 的個數。例如,5!120,其末尾所含有的 0 的個數為1 10!3628800,其末尾所含有的 0 的個數為2 20!2432902008176640000,其末尾所含有的 0 的個數為4。計算公式 這裡先給出其計算公式,後面給出推...

重複N次的元素

在大小為 2n 的陣列 a 中有 n 1 個不同的元素,其中有乙個元素重複了 n 次。返回重複了 n 次的那個元素。示例 1 輸入 1,2,3,3 輸出 3 示例 2 輸入 2,1,2,5,3,2 輸出 2 示例 3 輸入 5,1,5,2,5,3,5,4 輸出 5 4 a.length 10000 ...

統計n!後0的個數

統計0的個數,你只需要統計2 5的個數,然而在該數列中,5的個數遠遠少於2的個數,所以僅僅只需要統計5的個數即可。code include include include include include include using namespace std define ll long long ...