牛客 簡單瞎搞題 //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...