1. 程式人生 > >簡單瞎搞題(bitset的操作)

簡單瞎搞題(bitset的操作)

pan target sub img 備註 src 一個 href 種類數

鏈接:https://www.nowcoder.com/acm/contest/132/C
來源:牛客網

題目

一共有 n個數,第 i 個數是 xi xi 可以取 [li , ri] 中任意的一個值。 設 技術分享圖片,求 S 種類數。

輸入描述:

第一行一個數 n。 
然後 n 行,每行兩個數表示 l
i
,r
i

輸出描述:

輸出一行一個數表示答案。
示例1

輸入

復制
5
1 2
2 3
3 4
4 5
5 6

輸出

復制
26

備註:

1 ≤ n , li , ri ≤ 100

這題用bitset暴力可以出
然後我去學了一個上午的bitset ,位操作還是騷啊

 1 #include <bits/stdc++.h>
 2
using namespace std; 3 const int maxn = 1e6 + 10; 4 bitset<maxn>ans, cnt; 5 int n; 6 int main() { 7 scanf("%d", &n); 8 ans[0] = 1; 9 for (int i = 0 ; i < n ; i++) { 10 int x, y, k = 0; 11 cnt.reset(); 12 scanf("%d%d", &x, &y); 13 for
(int j = x ; j <= y ; j++) { 14 cnt |= (ans <<= (j * j - k)); 15 k = j * j; 16 } 17 ans = cnt; 18 } 19 printf("%d\n", ans.count()); 20 return 0; 21 }

簡單瞎搞題(bitset的操作)