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

*题解:P3293 [SCOI2016] 美味

题目链接

解析

看到异或,想到按位处理,这样 \(a + x\) 得看作是一个整体。对于 \(b\) 的第 \(k\) 位,如果其为 \(1\),则我们希望 \(a + x\) 的对应位为 \(0\)。如何让 \(a + x\) 的第 \(k\) 位为 \(0\) 呢?考虑到 \(a + x\) 的更高位已经确定,设当前确定出来的那部分为 \(y\),那么 \(a + x\) 的范围应当为 \([y,y + 2^k)\)

当然,取不取得到就是另一回事了。由上可得此时 \(a\) 的范围应当是 \([y - x,y + 2 ^ k - x)\),所以需要判断区间内是否存在这样的 \(a\),可以用主席树来实现。

\(b\) 的第 \(k\) 位为 \(0\) 的情况同理。

代码

#include <bits/stdc++.h>
#define mid ((1ll * l + r) >> 1)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N = 2e5 + 5,M = (1ll << 31) - 1,L = 19,L2 = 17,mod = 998244353; 
int cnt[N * L],rt[N],ls[N * L],rs[N * L],siz,a[N];
void push_up(int p){cnt[p] = cnt[ls[p]] + cnt[rs[p]];
}
void add(int x,int &y,int l,int r,int k){if(!y) y = ++siz;if(l == r){cnt[y] = cnt[x] + 1;return;}if(k <= mid){rs[y] = rs[x];add(ls[x],ls[y],l,mid,k);}else{ls[y] = ls[x];add(rs[x],rs[y],mid + 1,r,k);}push_up(y);
}
int ask(int x,int y,int l,int r,int L,int R){if(l > R || r < L) return 0;if(l >= L && r <= R){return cnt[y] - cnt[x];}return ask(ls[x],ls[y],l,mid,L,R) + ask(rs[x],rs[y],mid + 1,r,L,R);
}
signed main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//	freopen("in.txt","r",stdin);
//	freopen("out.txt","w",stdout);int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];add(rt[i - 1],rt[i],0,N - 1,a[i]);}while(m--){int b,x,l,r;cin>>b>>x>>l>>r;int now = 0;for(int i=L;i>=0;i--){int f = b & (1 << i);if(f){int res = ask(rt[r],rt[l - 1],0,N - 1,now - x,now + (1 << i) - 1 - x);if(!res) now |= (1 << i);}else{int res = ask(rt[r],rt[l - 1],0,N - 1,now + (1 << i) - x,now + (1 << i + 1) - 1 - x);if(res) now |= (1 << i);}}cout<<(now ^ b)<<'\n';}return 0;
}
http://www.jsqmd.com/news/839825/

相关文章:

  • 别再买模块了!自制Arduino Nano的“运动感知显示屏”扩展板(OLED+MPU6050二合一)
  • BetterJoy完全指南:3步让Switch手柄变身PC全能控制器
  • PUBG雷达系统:5分钟打造你的战场上帝视角
  • 从零构建ChatGPT风格AI对话应用:技术架构与工程实践
  • 茉莉花插件:Zotero中文文献管理的3步安装与智能处理指南
  • TVA动态批处理调优:60PPM升至90PPM时max_queue_delay设置策略
  • 5步掌握Happy Island Designer:免费在线岛屿设计工具完整实战指南
  • 面试官连环问:Cache设计题从入门到精通(附字节/阿里真题解析)
  • 2026广州童颜针深度指南:效果、价格、区别一文看懂!正规机构这样选 - 资讯焦点
  • 在Nodejs后端服务中集成多模型API实现智能客服
  • NoFences终极指南:如何用免费开源工具彻底告别杂乱桌面
  • ARM Cortex-R缓存架构与实时系统优化实践
  • 3分钟搞定MASA全家桶汉化包:让Minecraft模组界面说中文的完整指南
  • 2026年最新岩棉板优质厂家推荐指南 廊坊美翔保温材料有限公司优选 岩棉板/外墙岩棉板/防水岩棉板/防火岩棉板/憎水岩棉板/岩棉保温板/保温岩棉板/A级岩棉板/国标岩棉板 - 奔跑123
  • 控制理论基础(1)
  • 告别臃肿控制软件:华硕笔记本终极轻量化性能管理神器G-Helper完全指南
  • 鱼油哪种牌子好?2026高品质知名鱼油品牌推荐:温和高效守护心脏健康 - 资讯焦点
  • 2026年合肥高端化妆品亚克力包装定制工厂怎么选?极速打样+OEM/ODM源头供应商对比指南 - 年度推荐企业名录
  • gptree:AI增强的智能目录树生成工具,提升项目结构与文档效率
  • 天津除甲醛公司真相:如何避开“伪全国直营”陷阱? - 博客湾
  • 2026年GEO优化公司TOP3权威测评:全链路闭环能力与客户成功验证深度解析 - 博客湾
  • Pearcleaner:macOS应用彻底清理终极指南,释放30%隐藏存储空间
  • 026年上海化妆品亚克力包装定制厂家对标选型指南 - 年度推荐企业名录
  • DDrawCompat:如何在现代Windows上为经典DirectX游戏注入新生命?
  • 2026 广州融资机构实力榜|国委联稳居榜首,复杂融资首选 - 资讯焦点
  • 如何深度调优显卡性能:NVIDIA Profile Inspector完整配置手册
  • 企业做小程序选什么平台?按需求对号入座,别纠结 - 维双云小凡
  • 一定要建立自己的话题库
  • WinRing0深度解析:Windows硬件访问的终极解决方案
  • 2026年光学显微成像方案代理商选择指南:从通用到定制与模块化 - 品牌推荐大师1