[jzoj4711]【NOIP2016提高A组模拟8.17】Binary
来源:互联网 发布:mac过滤是什么意思 编辑:程序博客网 时间:2024/05/23 19:16
Description
Solution
拆位考虑
设当前考虑第 i 位
可以用树状数组解决
每次每位 查询
树状数组解决
Code
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define fo(i,x,y) for (ll pq = (y),i = (x);i <= pq;++ i)#define fd(i,x,y) for (ll pq = (y),i = (x);i >= pq;-- i)#define oo 2139062143using namespace std;typedef double db;typedef long long ll;ll lowbit(ll x) {return((x)&(-x));}ll min(ll x,ll y){return (x>y)?(y):(x);}ll max(ll x,ll y){return (x>y)?(x):(y);}ll er(ll x){ return(1<<(x));}const ll N=100100,MX=(1<<21)-1;ll n,q;ll a[N];ll opt,x,y;ll t[22][MX];void add(ll pos,ll x,ll v){ ++x; while(x<=MX) { t[pos][x]+=v; x+=lowbit(x); }}ll query(ll pos,ll x){ ++x; x=min(x,MX); ll rt=0; while(x>0) { rt+=t[pos][x]; x-=lowbit(x); } return rt;}int main(){ scanf("%lld%d",&n,&q); fo(i,1,n) { scanf("%lld",&a[i]); fo(l,0,20) add(l,a[i]&(er(l+1)-1),1); } while(q--) { scanf("%lld%lld%lld",&opt,&x,&y); if(opt==1) { fo(l,0,20) add(l,a[x]&(er(l+1)-1),-1),add(l,y&(er(l+1)-1),1); a[x]=y; } else if(opt==2) { ll ans=0; fo(l,0,20) if(y&er(l)) { ll tmp=0; tmp+=(query(l,er(l+1)-1-(x&(er(l+1)-1)))-query(l,er(l)-1-(x&(er(l+1)-1)))); tmp+=query(l,er(l+1)+er(l+1)-1-(x&(er(l+1)-1)))-query(l,er(l+1)+er(l)-1-(x&(er(l+1)-1))); ans+=tmp*er(l); } printf("%lld\n",ans); } } return 0;}
阅读全文
1 0
- JZOJ4711. 【NOIP2016提高A组模拟8.17】Binary
- 【JZOJ4711】【NOIP2016提高A组模拟8.17】Binary
- [jzoj4711]【NOIP2016提高A组模拟8.17】Binary
- 【NOIP2016提高A组模拟8.17】Binary
- 【NOIP2016提高A组模拟8.17】Binary
- Binary 【NOIP2016提高A组模拟8.17】
- JZOJ 4711. 【NOIP2016提高A组模拟8.17】Binary
- JZOJ 4711 Binary【NOIP2016提高A组模拟8.17】
- Matrix 【NOIP2016提高A组模拟8.17】
- Value【NOIP2016提高A组模拟8.17】
- 【NOIP2016提高A组模拟8.17】Matrix
- 【NOIP2016提高A组模拟8.17】Value
- 【NOIP2016提高A组模拟8.17】Matrix
- 【NOIP2016提高A组模拟8.17】Value
- 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Binary
- jzoj 4711. 【NOIP2016提高A组模拟8.17】Binary 树状数组+位运算
- JZOJ.4710【NOIP2016提高A组模拟8.17】Value
- JZOJ4709. 【NOIP2016提高A组模拟8.17】Matrix
- netty权威指南 学习笔记http
- LeetCode Exercise 14: Maximal Square
- 树的孩子兄弟表示法-因特网域名的查找
- 11. new & delete
- 大数据企业学习篇03_3------hive 高级
- [jzoj4711]【NOIP2016提高A组模拟8.17】Binary
- awt
- SQL小技巧
- 机器学习中各种算法在人脸补全中的应用比较
- hadoop中构建自定义的数据类型
- 工作多年老菜鸟的感悟!
- 爬取Gerrit
- 形象的描述大数据
- 数据结构-图的分析