CodeForces 339D D. Xenia and Bit Operations(线段树的单点更新)
来源:互联网 发布:mac 安装qq五笔输入法 编辑:程序博客网 时间:2024/05/18 20:04
此题的时间复杂度要求的有点高,所以普通的方法肯定超时.
由于时类似于单点更新的所以可以用线段树,主要就是解决层数的用|还是^的问题.所以单设一个数组来记录当前的
层数问题.
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cstdlib>#include <queue>#include <cmath>#define inf 0x3f3f3f3f;#define ls l,mid,rt<<1#define rs mid+1,r,rt<<1|1#define maxn 5000000int arr[maxn],tmp[maxn];using namespace std;int Up(int rt,int ans){ if(ans==0) return 0; if(ans&1) arr[rt]=arr[rt<<1]|arr[rt<<1|1]; else arr[rt]=arr[rt<<1]^arr[rt<<1|1];}void bu(int l,int r,int rt,int ans){ if(l==r) { scanf("%d",&arr[rt]);return ; } int mid=(l+r)>>1; bu(ls,ans-1); bu(rs,ans-1); tmp[rt]=ans; Up(rt,tmp[rt]);}void Q(int l,int r,int rt,int id,int a){ if(l==r) { arr[rt]=a;return ; } int mid=(l+r)>>1; if(id<=mid) Q(ls,id,a); else Q(rs,id,a); Up(rt,tmp[rt]);}int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { int k=(int)pow(2,n); bu(1,k,1,n); int id,a; for(int i=0;i<m;i++) { scanf("%d%d",&id,&a); Q(1,k,1,id,a); cout<<arr[1]<<endl; } } return 0;}
0 0
- CodeForces 339D D. Xenia and Bit Operations(线段树的单点更新)
- codeforces 339 D.Xenia and Bit Operations(线段树)
- codeforces 339D Xenia and Bit Operations 线段树
- CodeForces 339D Xenia and Bit Operations 线段树
- Codeforces 339D Xenia and Bit Operations 线段树
- CodeForces 339D Xenia and Bit Operations(线段树)
- Codeforces 339D Xenia and Bit Operations 线段树单点修改
- CodeForces 339D Xenia and Bit Operations 数据结构+线段树+点更新
- CodeForces 339D Xenia and Bit Operations (线段树水题)
- CodeForces 339D Xenia and Bit Operations
- CodeForces 339D Xenia and Bit Operations
- CF 339D - Xenia and Bit Operations(线段树)
- CodeForces 339D Xenia and Bit Operations(线段树点修改)
- [题解]codeforces 339d Xenia and Bit Operations
- Codeforces Round #197 (Div. 2) D. Xenia and Bit Operations - 线段树
- Codeforces Round #197 (Div. 2) -- D. Xenia and Bit Operations(线段树)
- Codeforces Round #197 (Div. 2) D. Xenia and Bit Operations(线段树)
- 文章标题 coderforces 339D : Xenia and Bit Operations (线段树+点修改)
- linux下字符串处理工具一:grep
- 几种深度学习库的整理
- PHP命名空间解析规则
- 在ModelSim中添加Xilinx仿真库
- 条件变量pthread_cond_t
- CodeForces 339D D. Xenia and Bit Operations(线段树的单点更新)
- 友盟第三方登录
- C++中修改文件夹名以及文件名
- Versions的简单配置
- JavaScript高级程序设计之DOM之节点层次之Element类型第10.1.3讲
- 圆方参数化之-- 抽屉导轨五金的入库
- 设计模式----Proxy(代理)模式
- android 一些通用view(2)
- 链接样式表和导入样式区别