狀態壓縮的一些常用東西

2022-07-24 14:18:20 字數 542 閱讀 9354

這四種運算在狀壓dp中有著廣泛的應用,常見的應用如下:

1.判斷乙個數字x二進位制下第i位是不是等於1。

方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0)

將1左移i-1位,相當於製造了乙個只有第i位上是1,其他位上都是0的二進位制數。然後與x做與運算,如果結果》0,說明x第i位上是1,反之則是0。

2.將乙個數字x二進位制下第i位更改成1。

方法:x = x | ( 1<<(i-1) )

證明方法與1類似,此處不再重複證明。

3.把乙個數字二進位制下最靠右的第乙個1去掉。

方法:x=x&(x-1)

餘數的一種運算方式:

從乙個數n第一位開始模k,餘m,令m乘以10+n的下一位,再去模k,直到n的最後一位,即為n/k的餘數。

常用的位運算

1<

struts2 常用的一些東西

總結了struts2常用的東西,懶得一下子寫那麼多,一天寫一點吧 1 標籤 1 1 s property 例子如下,sivo對應action的乙個物件屬性,該屬性有title屬性 1 2 s iterator 此標籤用於迴圈迭代,例子如下 volist是action中的乙個list型別的屬性,該標籤...

c stl 一些東西

std map 其key是基於比較運算子的,因此自定義型別需要為該型別設定比較運算子操作 class a private int mm std mapkk std unordered map 基於hash實現,需要為自定義型別設定 運算子和雜湊函式 class a int get value con...

一些基礎的東西

在c 中宣告變數使用下述的語法 但是在c 中有變數初始化的要求,即c 編譯器需要用某個初始值對變數進行初始化,之後才能在操作中引用該變數。c 有兩個方法可確保變數在使用前進行了初始化 變數是類 class 或結構 struct 中的字段 field 如果沒有顯式初始化,在預設狀態下建立這些變數時,其...