Supercomputer

设\(f_i\)为前\(i\)个时间内必须的完成的任务个数,那么答案就是
\[ \max_{i}\lceil\frac{f_i}{i}\rceil \]
现在要支持区间加和全局\(\max\)

考虑分块,对每个块维护一个\(tag\)表示加标记

块内的\(\max\)则为
\[ \max_i \frac{1}{i}\times tag+\frac{f_i}{i} \]
则把\(k=\frac{1}{i},b=\frac{f_i}{i}\),就对一个块维护一个关于直线的上凸壳

然后发现\(tag\)是单增的,所以可以均摊\(O(n)\)的在每个块的凸壳上维护

修改的时候不满一块的暴力重构块,否则打tag上去


Code:

#include <cstdio>
#include <cctype>
#include <cmath>
#include <algorithm>
#define ll long long
using std::max;
using std::min;
const int N=1e5+10;
const int B=350;
template <class T>
void read(T &x)
{x=0;char c=getchar();while(!isdigit(c)) c=getchar();while(isdigit(c)) x=x*10+c-'0',c=getchar();
}
int n,m,q,ans,T,L[B],R[B],belong[N],yuy[N];
struct koito_yuu
{int x,y;//k=1/x,b=y/xkoito_yuu(){}koito_yuu(int X,int Y){x=X,y=Y;}
};
bool ck(koito_yuu a,koito_yuu b,koito_yuu c)
{return (1.0*a.x*b.y-1.0*b.x*a.y)*(c.x-b.x)>=(1.0*b.x*c.y-1.0*c.x*b.y)*(b.x-a.x);
}
struct Block
{koito_yuu s[B];int tot,tag;void build(int x){tot=0;for(int i=L[x];i<=R[x];i++){koito_yuu pot=koito_yuu(i,yuy[i]);while(tot>1&&ck(pot,s[tot],s[tot-1])) --tot;s[++tot]=pot;}}void Move(){while(tot>1&&(1ll*(tag+s[tot].y)*s[tot-1].x)<=1ll*(tag+s[tot-1].y)*s[tot].x) --tot;ans=max(ans,(tag+s[tot].y-1)/s[tot].x+1);}
}bee[B];
void query()
{for(int i=1;i<=T;i++)bee[i].Move();
}
int main()
{freopen("computer.in","r",stdin);freopen("computer.out","w",stdout);read(n),read(m),read(q);for(int x,i=1;i<=m;i++) read(x),++yuy[x];for(int i=1;i<=n;i++) yuy[i]+=yuy[i-1];int b=sqrt(n)+1;T=(n-1)/b+1;for(int i=1;i<=T;i++){L[i]=R[i-1]+1,R[i]=min(i*b,n);for(int j=L[i];j<=R[i];j++) belong[j]=i;bee[i].build(i);}query();printf("%d\n",ans);for(int k,v,i=1;i<=q;i++){read(k),read(v);int bl=belong[v];for(int j=v;j<=R[bl];j++) yuy[j]+=k;bee[bl].build(bl);for(int j=bl+1;j<=T;j++) bee[j].tag+=k;query();printf("%d\n",ans);}return 0;
}

2019.3.26

转载于:https://www.cnblogs.com/butterflydew/p/10601280.html

Supercomputer 解题报告相关推荐

  1. uscao 线段树成段更新操作及Lazy思想(POJ3468解题报告)

    线段树成段更新操作及Lazy思想(POJ3468解题报告) 标签: treequerybuildn2cstruct 2011-11-03 20:37 5756人阅读 评论(0) 收藏 举报  分类: ...

  2. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  3. 【解题报告系列】超高质量题单 + 题解(ACM / OI)超高质量题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我新写的超高质量的题解和代码,题目难度不 ...

  4. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  5. 解题报告(十三)中国剩余定理(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  7. 解题报告(八) prufer 序列与 Cayley 公式(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  8. 解题报告(一)E、(BZOJ4589)Hard Nim(博弈论 + FWT)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  9. 解题报告(五)组合计数(ACM / OI)超高质量题解

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. 【Webview相关问题】登陆失败之cookie陷阱
  2. 基础知识真的是九阳神功吗?
  3. node版本查看管理工具
  4. 解决IllegalStateException: Can not perform this action after onSaveInstanceState
  5. html type=text/css,type=text/css 有什么用啊 ?
  6. 爬虫-练习-爬取访问后可见的内容
  7. Ubuntu 20.04安装Ros Noetic及Ubuntu 18.04安装ROS Melodic(两版本详细填坑)
  8. 常微分方程第三版_常微分方程:(第六章)非线性微分方程:5节
  9. C语言实现windows进程遍历
  10. swift学习笔记《5》- 实用
  11. [转载]【文摘?国外的GIS猛校猛人】GIS派系大解密_拔剑-浆糊的传说_新浪博客
  12. matlab里的计算符号,Matlab符号运算总结
  13. N个例子让你彻底理解java接口回调
  14. 怎样设置CCProxy
  15. 当拳皇遇上数据库,会擦出什么样的火花?
  16. 从学校家长委员会谈开去
  17. Failed to introspect Class from LaunchedURLClassLoader
  18. Google-admob广告变现
  19. 丙丙-2个月面试20家大厂的知识点总结和建议(答案)
  20. 【机器学习】梯度下降 (python代码)

热门文章

  1. [蓝桥杯][2014年第五届真题]生物芯片(数论)
  2. 进程间基于共享存储区的通信_IPC(进程间通讯):inter process communication
  3. spring mvc 拦截器 HandlerInterceptor 的使用
  4. linux系统下的“静态库和动态库”专题之二:库的创建和使用
  5. [机器学习]回归--(Simple LR and Multiple LR)
  6. Optical_Flow(2)
  7. 【Ubuntu-Tensorflow】GPU设置及显存资源分配
  8. 刷光借呗额度之后用户突然去世,支付宝会怎么做?
  9. Scala语言将加入宏指令
  10. 2002年呼伦贝尔之行照片