牛客 簡單瞎搞題 bitset 01dp

2021-09-23 10:31:25 字數 1033 閱讀 7801

牛客 簡單瞎搞題 //bitsert 01dp

一共有 n個數,第 i 個數是 xi 

xi 可以取 [li , ri] 中任意的乙個值。

設 s=∑xi2s=∑xi2,求 s 種類數。

第一行乙個數 n。 

然後 n 行,每行兩個數表示 li,ri。

輸出一行乙個數表示答案。
如果是dp,定義dp[i][j] 第n行,s為j是否有這個狀態。以下超時**

#includeusing namespace std;

#define ll long long

const ll mod = 1000000007;

const int mx = 1e3+1;

bool dp[101][100*100*100+1];

int main()

}int ans=0;

for(int k=0;k<=1e6;k++)

if(dp[n][k]) ans++;

printf("%d",ans);

return 0;

}

biset類似01揹包優化,複雜度/64,o(1e10/64)可過,

bitset用於優化dp一般存在於01dp,一般也可以用到滾動陣列的思想,一位代表乙個數(狀態)是否存在,左右移即可加減。

correct**:

#includeusing namespace std;

#define ll long long

const ll mod = 1000000007;

const int mx = 1e3+1;

bitset<100*100*100+1>ans,t;

int main()

ans=t;

}printf("%d",ans.count());

return 0;

}

牛客練習賽22 C 簡單瞎搞題(bitset)

bitset類似於bool型別的陣列,乙個元素佔1bits,空間得到極大優化。std bitset 16 foo std bitset 16 bar 0xfa2 std bitset 16 baz std string 0101111001 foo 0000000000000000 bar 0000...

牛客網 每日一題 5月20日題目 簡單瞎搞題

比賽鏈結 輸入描述 第一行乙個數 n。然後 n 行,每行兩個數表示 li,ri。輸出描述 輸出一行乙個數表示答案。示例1 輸入512 2334 4556 輸出 26備註 1 n li ri 100 xi的是在 li ri 中任選乙個,然後構成值,所以可以用分組揹包來做 dp i j 前i個數字能否構...

牛客網 簡單題

給出乙個數學式子和兩個關係,知道其他所有數的值,求最後乙個的值 這道題目關鍵點有兩個 1.1.1.一開始的式子其實自然對數e ee的求值公式 2.2.2.對於題目要求的任意保留小數,我們可以用到c c c 中的ios iosios cout include include include inclu...