题解:uoj671【UNR #5】诡异操作

news/2025/11/2 12:02:39/文章来源:https://www.cnblogs.com/LUlululu1616/p/19184676

饺子醋环节。

题意:给出一个 \(n\) 长序列 \(a\),有三种操作:

  1. 区间除法。

  2. 区间取与。

  3. 区间求和。

\(n\le 2\times 10^5,V< 2^{128}\)。题面给了一份输入输出模板。

做法:

首先直接做考虑每个点维护一下 \(2^k\) 出现了多少次,一操作直接做总复杂度是 \(O(n\log V)\) 的,二操作采用直接打 tag,复杂度 \(O(n\log n)\),pushup 是 \(\log V\) 的,所以总复杂度是 \(O(n\log^2V)\)

考虑怎么优化,除法和 tag 感觉没什么可以优化的了,考虑怎么优化 pushup。观察 pushup 的本质是什么,我们把 \(2^k\) 出现次数展开成二进制写,其实我们是维护了一个 \(\log V\times \log n\) 的矩阵,那么我们其实没有必要去维护 \(\log V\) 这边,而是维护 \(\log n\) 这一边即可,复杂度降到 \(n\log n\log V\),可以通过。没有太看懂网上题解对于除法说精细实现可以做到 \(n\log V\) 的解释,我一直整体除以 \(2\) 不是爆炸完了。

有点卡常,一个可行的卡常方法是把每个节点只考虑前若干个有值得行,这样会快特别多。我这里比较暴力,直接把长度补成 \(2^n\) 然后就比较方便定长度。

代码:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define u128 __uint128_t
const int maxn = 5.3e5 + 5;
typedef __uint128_t u128;
inline u128 read() {static char buf[100];scanf("%s", buf);// std::cin >> buf;u128 res = 0;for(int i = 0;buf[i];++i) {res = res << 4 | (buf[i] <= '9' ? buf[i] - '0' : buf[i] - 'a' + 10);}return res;
}
inline void output(u128 res) {if(res >= 16)output(res / 16);putchar(res % 16 >= 10 ? 'a' + res % 16 - 10 : '0' + res % 16);//std::cout.put(res % 16 >= 10 ? 'a' + res % 16 - 10 : '0' + res % 16);
}
struct node {vector<u128> a;bool f;inline u128& operator[](int x) {return a[x];}void resize(int N) {a.resize(N);}inline int size() {return a.size();}
} ;
int n, q;
u128 a[maxn], mx, pw = 1;
int len[maxn];
struct Segtree {node tr[maxn << 2];u128 tag[maxn << 2];void pushup(int t) {tr[t].f = tr[t << 1].f & tr[t << 1 | 1].f;u128 val = 0;for (int i = 0; i < tr[t << 1].size(); i++) {tr[t][i] = val ^ tr[t << 1][i] ^ tr[t << 1 | 1][i];val = (tr[t << 1][i] & tr[t << 1 | 1][i]) | (tr[t << 1][i] & val) | (val & tr[t << 1 | 1][i]);}tr[t][tr[t].size() - 1] = val;}void build(int l, int r, int t) {tag[t] = mx;tr[t].resize(len[r - l + 1]);//cout << l << " " << r << "asdf " << len[r - l + 1] << endl;if(l == r) {tr[t][0] = a[l];tr[t].f = a[l] == 0;return ;}int mid = l + r >> 1;build(l, mid, t << 1), build(mid + 1, r, t << 1 | 1);pushup(t);}void addtag(int t, u128 val) {tag[t] &= val;for (int i = 0; i < tr[t].size(); i++)tr[t][i] &= val;}void pushdown(int t) {if(tag[t] == mx)return ;addtag(t << 1, tag[t]);addtag(t << 1 | 1, tag[t]);tag[t] = mx;}void update1(int l, int r, int x, int y, int t, u128 v) {if(tr[t].f)return ;if(l == r) {tr[t][0] /= v;tr[t].f = tr[t][0] == 0;return ;}int mid = l + r >> 1;pushdown(t);if(x <= mid)update1(l, mid, x, y, t << 1, v);if(mid < y)update1(mid + 1, r, x, y, t << 1 | 1, v);pushup(t);}void update2(int l, int r, int x, int y, int t, u128 v) {if(tr[t].f)return ;if(x <= l && r <= y) {addtag(t, v);return ;}int mid = l + r >> 1;pushdown(t);if(x <= mid)update2(l, mid, x, y, t << 1, v);if(mid < y)update2(mid + 1, r, x, y, t << 1 | 1, v);pushup(t);}u128 query(int l, int r, int x, int y, int t) {if(x <= l && r <= y) {u128 res = 0;for (int i = 0; i < tr[t].size(); i++)res += tr[t][i] << i;return res;}int mid = l + r >> 1;pushdown(t);if(y <= mid)return query(l, mid, x, y, t << 1);if(mid < x)return query(mid + 1, r, x, y, t << 1 | 1);return query(l, mid, x, y, t << 1) + query(mid + 1, r, x, y, t << 1 | 1);}
} tree;
signed main() {cin >> n >> q;for (int i = 1; i <= n; i++)a[i] = read();for (int i = 0; i < 128; i++)mx += pw, pw <<= 1;int tn = 1, cnt = 1;while(tn < n)len[tn] = cnt, tn <<= 1, cnt++;len[tn] = cnt;n = tn;tree.build(1, n, 1);while(q--) {int op, l, r; u128 v;cin >> op >> l >> r;if(op == 1) {v = read();if(v != 1)tree.update1(1, n, l, r, 1, v);}if(op == 2)v = read(), tree.update2(1, n, l, r, 1, v);if(op == 3)output(tree.query(1, n, l, r, 1)), putchar('\n');}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/953482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年10月中国管理咨询公司对比榜:十强参数全解析

引言与现状分析 制造业升级、国资混改、民企二代接班、跨境合规四重浪潮叠加,2025年的中国企业普遍面对“战略快、组织慢、人才缺、数据散”的痛点。工信部《2025中小企业管理升级报告》显示,73%的受访企业认为“外部…

2025年11月上海装修公司排行榜:十强资质与工期数据对比

在上海这样的一线城市,装修一套房子往往意味着数十万元的投入与数月的时间成本。对于首次置业的年轻家庭、改善型换房人群,以及追求出租回报率的投资者来说,如何找到一家“报价透明、工期可控、售后敢负责”的装修公…

2025年11月上海装修公司服务榜:十强真实案例与用户满意度对比

在上海这样一座房价高、节奏快的城市,装修往往被业主视为“第二次买房”。预算动辄几十万,工期一拖就影响入住,设计风格一旦翻车,几年都住得别扭。更常见的是:报价不透明,后期增项不断;施工队外包,出了问题互相…

浮点数存

浮点型量比较 由于浮点型数值在计算机中以2 E ∗ S 2^E*S2 E ∗S(E:阶码 S:尾数)的形式保存,因此只能近似保存浮点数值。 例如:运行以下代码,可以看到数学上应该相等的两个量,在内存中保存的数值是不同的,但是…

2025年11月上海装修公司排行榜:十强性价比与满意度对比

在上海,装修一套房往往牵动全家神经:预算怕超、工期怕拖、隐蔽工程怕漏,还要在数百家装修公司里挑出真正靠谱的那一家。2025年第三季度上海市消保委数据显示,家装投诉量同比下降8%,但“增项、延期、售后找不到人”…

2025 年 11 月立式砂磨机厂家推荐排行榜,立式纳米砂磨机,小型立式砂磨机,高效研磨设备优质品牌精选

2025 年 11 月立式砂磨机厂家推荐排行榜:立式纳米砂磨机、小型立式砂磨机高效研磨设备优质品牌精选 在精细化工、新材料、新能源等产业快速发展的背景下,立式砂磨机作为高效研磨设备的重要组成部分,其技术水平和产品…

2025 年 11 月法兰闸阀厂家推荐排行榜,美标/国标/锻钢/高压/高压美标/碳钢美标/碳钢/高温/焊接/法兰闸阀公司推荐

2025 年 11 月法兰闸阀厂家推荐排行榜:美标/国标/锻钢/高压/碳钢/高温/焊接闸阀权威指南 在工业流体控制领域,法兰闸阀作为关键的控制元件,其性能和质量直接影响整个管道系统的安全运行。随着2025年临近,工业领域对…

免费使用编程神器MiniMax M2:新手详细入门指南

免费使用编程神器MiniMax M2:新手详细入门指南 你是否想体验一款能与世界顶级AI编程模型媲美的工具?国产模型MiniMax M2近期火爆海外,编程能力直逼Claude Opus 4.1,而且目前完全免费!本文将手把手教你如何从零开始…

逆向基础--汇编基础(字与物料地址) (004)

逆向基础--汇编基础(字与物料地址) (004)一.字的存储我们听过字节的概念,1个字节等于8比特位,那么字和字节的关联是1个字等于2个字节。比特记为bit,字节记为Byte,字记为word,所以有如下关系:1Byte=8bits, 1word=…

2025年11月脸部泛红产品推荐榜:五款抗泛红精华横向对比与评价

秋风一起,脸颊就像被悄悄点燃:空调房一待就红,换季风一吹更红,口罩戴久了还伴随刺痒。很多人把“脸红”当成小事,直到拍照必须开美颜、开会不敢脱口罩、护肤品一上脸就刺痛,才意识到“泛红”其实是屏障受损的求救…

2025年11月美国投资移民机构评价榜:和中领衔十强深度对比

站在2025年四季度的时间点,计划通过EB-5或其他投资路径移居美国的家庭,普遍面临三大现实:排期长度仍存不确定性、项目合规审查趋严、服务机构信息过载却缺乏横向对比。对于高净值人群而言,一次决策涉及资金占用少则…

2025年11月脸部泛红产品推荐榜:敏感肌修护精华排名解析

秋风一起,脸颊就“报警”:冷风一吹、空调一烘,两坨高原红准时上线,拍照靠滤镜、出门靠口罩。你可能是刚入职场预算有限的社畜,也可能是产后屏障受损的新手妈妈,或者刷酸翻车、医美后脸像“关公”的护肤爱好者。大…

2025年11月脸部泛红产品推荐榜:敏感肌泛红精华实测排行

每到换季或熬夜后,脸颊突然发热、泛红、紧绷甚至刺痛,是敏感肌人群最熟悉的“警报”。2025年《中国皮肤性病学杂志》发布的敏感肌流行病学调查显示,18—45岁城市女性中,自述“面部易泛红”比例已升至46.7%,其中超…

1072:鸡尾酒疗法

【题目描述】 鸡尾酒疗法,指“高效抗逆转录病毒治疗”。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式进行。假设鸡尾酒疗法的…

2025年11月智能学习机品牌推荐:新课标同步学习机口碑排名榜

孩子放学回家,作业堆成山,家长却抽不出时间辅导;新课标变化快,旧资料跟不上;网课多而杂,难以判断哪些真正适合自家娃。这些场景几乎每天都在有学龄儿童的家庭上演。教育部数据显示,2024年全国中小学生日均在线学…

[SWPUCTF 2022 新生赛]funny_php WP

[SWPUCTF 2022 新生赛]funny_php WP 初看代码,发现获取 flag 的条件。 if(isset($_SESSION[L1])&&isset($_SESSION[L2])&&isset($_SESSION[L3])){include(flag.php);echo $flag; }$_SESSION[L1]=1 的…

2025年11月合肥律师事务所推荐榜:多维度实力对比与口碑评价

在合肥快速融入长三角一体化、商事活动日益频繁的背景下,企业与个人对“靠谱律师”的需求已从“熟人介绍”转向“数据化筛选”。用户常见场景包括:股权纠纷急需冻结对方资产、建设工程款拖欠需快速立案、婚姻家事涉及…

map[]使用补充

map[]使用补充map<ll,ll> m; // 这里的ll应该是long long的别名,但没有定义for(int i=0;;i++){ // 这是一个无限循环,没有终止条件cout<<m[i]; // 当访问不存在的键时,map会自动插入该键并将值初始化…

2025年11月婚礼前美白产品推荐榜:淡斑提亮精华口碑排行

婚礼前三个月,新娘护肤进入“冲刺期”,肤色暗沉、痘印色斑成为镜头前的最大焦虑。美白产品能否在有限时间内提亮肤色、淡化色斑,同时不刺激敏感肌,是准新娘们反复比对的核心痛点。2025年《中国美妆消费趋势报告》显…

2025年11月仓储管理系统推荐榜:鸿链云仓领衔十强对比评测

一、引言 仓储管理系统已成为供应链降本增效的核心枢纽,对同时管理多仓、多货主、多品类的企业尤为关键。2025年四季度,电商大促、年终盘点与来年预算交织,采购者、物流总监与IT负责人亟需一份基于最新市场动态的中…