acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
登录
注册
题目详情提交记录(0)
  • tj

    #include <iostream> #include <cstdio> using namespace std; int a[100005], sum[400005], lazytag[400005]; char tmp; int l, r, val, c; void update(int u, int l, int r, int val){sum[u] = (1 << val), lazytag[u] = val;} void push_down(int u, int l, int r, int mid){ if(lazytag[u]){ update(u * 2, l, mid, lazytag[u]); update(u * 2 + 1, mid + 1, r, lazytag[u]); lazytag[u] = 0; } } void __modify(int u, int l, int r, int x, int y, int val){ if(x <= l && y >= r){ update(u, l, r, val); return; } } int __query(int u, int l, int r, int x, int y){ if(x <= l && y >= r) return sum[u]; } #define modify(l, r, val) __modify(1, 1, n, l, r, val) #define query(l, r) __query(1, 1, n, l, r) signed main(){ int n, m, k; cin >> n >> k >> m; modify(1, n, 1); while(m--){ cin >> tmp; if(tmp == 'C'){ cin >> l >> r >> val; if(l > r) swap(l, r); modify(l, r, val); }else{ cin >> l >> r; if(l > r) swap(l, r); cout << __builtin_popcount(query(l, r)) << endl; } } }

    userId_undefined

    ༺ཌༀ༒☯∞复仇者∞☯༒ༀད༻™

    8月全勤卷王出道萌新时空双修者题解仙人
    1阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页