簡單瞎搞題(bitset的操作)
阿新 • • 發佈:2018-07-14
pan target sub img 備註 src 一個 href 種類數
鏈接:https://www.nowcoder.com/acm/contest/132/C
來源:牛客網
題目
一共有 n個數,第 i 個數是 xi xi 可以取 [li , ri] 中任意的一個值。 設 ,求 S 種類數。輸入描述:
第一行一個數 n。i
然後 n 行,每行兩個數表示 l
,ri
。
輸出描述:
輸出一行一個數表示答案。示例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> 2using 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的操作)