博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[bzoj3343] 教主的魔法
阅读量:5072 次
发布时间:2019-06-12

本文共 1435 字,大约阅读时间需要 4 分钟。

  分块大法。。

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int maxn=1002333,knum=1023; 8 int sz[knum],l[knum],r[knum],add[knum]; 9 int bel[maxn],mp[maxn];10 int a[knum][1023];11 int i,j,k,n,m,kuai;12 13 int ra;char rx;14 inline int read(){15 rx=getchar(),ra=0;16 while(rx<'0'||rx>'9')rx=getchar();17 while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;18 }19 inline int get(int id,int v){20 if(v<=0)return sz[id];21 if(v>a[id][sz[id]])return 0;22 int l=0,r=sz[id]+1,mid;23 while(l
>1)]>=v)r=mid;else l=mid+1;25 return sz[id]-l+1;26 }27 inline void insert(int L,int R,int v){28 register int i;29 if(bel[L]==bel[R]){30 int id=bel[L];31 for(i=L;i<=R;i++)mp[i]+=v;32 memcpy(a[id]+1,mp+1+l[id],sz[id]<<2);33 sort(a[id]+1,a[id]+1+sz[id]);34 return;35 }36 int idl=bel[L],idr=bel[R];37 for(i=L;i<=r[idl];i++)mp[i]+=v;38 memcpy(a[idl]+1,mp+1+l[idl],sz[idl]<<2),39 sort(a[idl]+1,a[idl]+1+sz[idl]);40 41 for(i=l[idr];i<=R;i++)mp[i]+=v;42 memcpy(a[idr]+1,mp+1+l[idr],sz[idr]<<2),43 sort(a[idr]+1,a[idr]+1+sz[idr]);44 45 for(i=idl+1;i
=v;51 return ans;52 }53 for(i=L;i<=r[idl];i++)ans+=mp[i]+add[idl]>=v;54 for(i=l[idr];i<=R;i++)ans+=mp[i]+add[idr]>=v;55 for(i=idl+1;i
View Code

 

转载于:https://www.cnblogs.com/czllgzmzl/p/5596518.html

你可能感兴趣的文章
《梦断代码》读书笔记(三)
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
pig自定义UDF
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>