BZOJ 3110:K大数查询
发布日期:2021-06-30 16:05:48
浏览次数:3
分类:技术文章
本文共 930 字,大约阅读时间需要 3 分钟。
整体二分题,很好理解,就是将查询区间和查询值区间进行整体二分。
#includeusing namespace std;#define max(a,b) a>b?a:b#define min(a,b) a 0){ if(vis[x][ind]==tot) sum+=bit[x][ind]; x-=lowbit(x); } return sum;} inline ll get_Sum(int x,int y){ ll sum=0; sum=(ll)(y+1)*getSum(y,0)-getSum(y,1)-(ll)x*getSum(x-1,0)+getSum(x-1,1); return sum;}int ans[maxn];int tmp[maxn][2];int Id[maxn];struct Node{ int type; int x,y; int c; }node[maxn];void Bin(int l,int r,int L,int R){ if(l>r) return ; int mid=(L+R)>>1; if(L==R){ for(int i=l;i<=r;i++) if(node[Id[i]].type==2) ans[Id[i]]=mid; return; } tmp[0][0]=tmp[0][1]=0; tot++; for(int i=l;i<=r;i++){ int tmpe=Id[i]; if(node[tmpe].type==1){ if(node[tmpe].c<=mid){ tmp[++tmp[0][0]][0]=tmpe; } else{ tmp[++tmp[0][1]][1]=tmpe; Add(node[tmpe].x,node[tmpe].y); } } else{ ll cnt=get_Sum(node[tmpe].x,node[tmpe].y); if(cnt
转载地址:https://kaven.blog.csdn.net/article/details/81150459 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月04日 17时39分01秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
梯度算法之初见
2019-05-01
解决python安装库较慢的方式
2019-05-01
Maven安装问题总结
2019-05-01
Maven 插件配置,安装配置问题
2019-05-01
PermGen space-永久区内存溢出
2019-05-01
Maven继承和聚合
2019-05-01
maven私服nexus配置
2019-05-01
nexus发布工程版本问题总结
2019-05-01
maven私服配置-发布工程版本到nexus
2019-05-01
Maven引入oracle驱动问题
2019-05-01
windows无法找到发送到桌面快捷方式
2019-05-01
redhat-vim文本编辑
2019-05-01
linux-文件挂载
2019-05-01
scala与java之间的集合类型转换
2019-05-01
Vue 3中令人激动的新功能:Fragment+Suspense+多v-model
2019-05-01
浅析Vuex及相关面试题答案
2019-05-01
Vue 3.0 中令人激动的新功能:Portals+新的自定义指令API
2019-05-01
requestAnimationFrame详解以及无线页面优化
2019-05-01
python2.6.x/python3发送邮件,并在正文中显示附件中的图片
2019-05-01