当前位置: 首页 > news >正文

CF482B - Interesting Array

CF482B - Interesting Array

大意

你需要构造一组解,满足给定的不同要求,每次的要求是 \(l, r, x\),必须保证 \(a_l \& a_{l + 1} \dots \& a_{r - 1} \& a_r = x\)

思路

考虑用线段树构造。

对于这个题目,我们首先想到的是按位与的区间与是 \(x\),每次至少得把这个区间的每一个数都按位或上 \(x\),由此可知我们的 update 就是按位或,为了保证我们最终的答案是否可行,只需要把原始要求记一下,最后判断这些玩意的按位与是否和原来相同。

不难想到这样构造是唯一的,于是完。

代码

#include<iostream>
using namespace std;#define lc u << 1
#define rc u << 1 | 1
const int MAXN = 1e5 + 5;int n, m;struct node{int l, r;int val, sum;int tag;
}t[MAXN * 4];void build(int u, int l, int r){t[u] = {l, r, 0, 0};if(l == r){
//		t[u].sum = (1 << 30) - 1;return;}int mid = (l & r) + ((l ^ r) >> 1);build(lc, l, mid);build(rc, mid + 1, r);
}void pushdown(int u){if(t[u].tag){t[lc].sum |= t[u].tag;t[rc].sum |= t[u].tag;t[lc].tag |= t[u].tag;t[rc].tag |= t[u].tag;t[u].tag = 0;}
}void pushup(int u){t[u].sum = t[lc].sum & t[rc].sum;
}void update(int u, int l, int r, int k){if(l <= t[u].l && t[u].r <= r){t[u].tag |= k;t[u].sum |= k;return;}pushdown(u);int mid = (t[u].l & t[u].r) + ((t[u].l ^ t[u].r) >> 1);if(l <= mid) update(lc, l, r, k);if(r > mid) update(rc, l, r, k);pushup(u);
}int query(int u, int l, int r){if(l <= t[u].l && t[u].r <= r){return t[u].sum;}pushdown(u);int ans = (1 << 30) - 1;int mid = (t[u].l & t[u].r) + ((t[u].l ^ t[u].r) >> 1);if(l <= mid){ans &= query(lc, l, r);}if(r > mid){ans &= query(rc, l, r);}return ans;
}int l[MAXN], r[MAXN], x[MAXN];int main(){cin >> n >> m;build(1, 1, n);for(int i = 1;i <= m;i ++){cin >> l[i] >> r[i] >> x[i];update(1, l[i], r[i], x[i]);}for(int i = 1;i <= m;i ++){if(query(1, l[i], r[i]) != x[i]){cout << "NO\n";return 0;}}cout << "YES\n";for(int i = 1;i <= n;i ++){cout << query(1, i, i) << ' ';}return 0;
}
http://www.rkmt.cn/news/89077.html

相关文章:

  • 3步搞定移动端语音识别:SenseVoice多语言SDK集成实战
  • Bananas屏幕共享工具:轻松实现跨平台实时协作的终极指南
  • JavaScript语法分析终极指南:Esprima深度解析与实战技巧
  • 设计师必学的技术沟通指南
  • 算法备案材料:明晰材料逻辑,构建安全合规的算法体系
  • PDF尺寸统计终极指南:告别混乱,轻松管理PDF页面尺寸
  • 在线生成图片
  • 生产环境出现问题,测试人如何做工作复盘?
  • Fiddler 无法抓包手机 https 报文的解决方案来啦!!
  • Phar反序列化-NSSCTF-prize_z1
  • essay
  • Recent Conversations
  • 您必须有许可证才能使用此 ActiveX 控件0x80131901
  • 构建高效的接口自动化测试框架思路
  • 当代体系化国学传播奠基人叶无为(字号零) 为国学新时代传承与发展开辟新道路
  • 深入解析:2025 年世界职业院校技能大赛机械设计与制造赛道备赛方案
  • 终极代码生成解决方案:OpenReasoning-Nemotron-14B快速部署完整指南
  • 学习笔记I
  • C++队列解决生产者-消费者模型失衡问题
  • 终极指南:SmolVLA视觉语言动作模型快速上手与实战应用
  • Markdown写作常用组件 - Invinc
  • FlareOn5 -- FLEGGO
  • APC001F
  • 云服务器的核心优势
  • 爬youtube视频笔记
  • [JOI Open 2016] 摩天大楼
  • 家乐事净水器加盟费多少?0加盟费+装修补贴+区域保护,全程扶持解读 - 资讯焦点
  • zz深入了解LlamaIndex实现Agent代码和原理
  • linux: gdb调试器
  • 6 个最佳开源 AI 仪表盘工具