【CodeForces 482B】Interesting Array
链接:
题目大意:
构建一个序列
正文:
线段树区间或上
代码:
const int N = 1e5 + 10; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while (c != '-' && (c < '0' || c > '9')) c = getchar(); if (c == '-') f = -f, c = getchar(); while (c >= '0' && c <= '9') x = (x << 3) + (x << 1) + c - '0', c = getchar(); return x * f; } int n, m; struct SegmentTree { struct Tree { int l, r, val, lzy; } t[N << 2]; void Build(int p, int l, int r) { t[p].l = l, t[p].r = r; if (t[p].l == t[p].r) { return ; } int mid = t[p].l + t[p].r >> 1; Build (p << 1, l, mid); Build (p << 1 | 1, mid + 1, r); } void Spread(int p) { if (!t[p].lzy) return; t[p << 1].val |= t[p].lzy; t[p << 1 | 1].val |= t[p].lzy; t[p << 1].lzy |= t[p].lzy; t[p << 1 | 1].lzy |= t[p].lzy; t[p].lzy = 0; } void Modify (int p, int l, int r, int val) { if (l <= t[p].l && t[p].r <= r) { t[p].val |= val, t[p].lzy |= val; return; } Spread(p); int mid = t[p].l + t[p].r >> 1; if (l <= mid) Modify(p << 1, l, r, val); if (mid + 1 <= r) Modify (p << 1 | 1, l, r, val); t[p].val = t[p << 1].val & t[p << 1 | 1].val; } int Query (int p, int l, int r) { if (l <= t[p].l && t[p].r <= r) return t[p].val; Spread(p); int mid = t[p].l + t[p].r >> 1; int ans = (1ll << 31) - 1; if (l <= mid) ans &= Query (p << 1, l, r); if (mid + 1 <= r) ans &= Query (p << 1 | 1, l, r); return ans; } }t; struct Ques { int l, r, val; }q[N]; int main() { // freopen(".in", "r", stdin); // freopen(".out", "w", stdout); n = Read(), m = Read(); t.Build(1, 1, n); for (int i = 1; i <= m; i++) { q[i].l = Read(), q[i].r = Read(), q[i].val = Read(); if (q[i].l > q[i].r) swap (q[i].l, q[i].r); t.Modify(1, q[i].l, q[i].r, q[i].val); } bool flag = 1; for (int i = 1; i <= m; i++) if (t.Query(1, q[i].l, q[i].r) != q[i].val) { flag = 0; break; } if (!flag) { puts("NO"); return 0; } puts("YES"); for (int i = 1; i <= n; i++) printf ("%d ", t.Query(1, i, i)); return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
2020-12-09 【YBTOJ】求 f 函数
2020-12-09 【YBTOJ】划分数列