比较显然的做法 枚举l,r 然后主席树

这题有很多单调性

可以利用

对一个确定的l 最优的r 是单调的 来分治

#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
typedef long long ll;inline char nc()
{static char buf[100000],*p1=buf,*p2=buf;if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }return *p1++;
}inline void read(int &x)
{char c=nc(),b=1;for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;
}const int N=100005;int root[N],ls[18*N],rs[18*N],cnt[18*N];
ll sum[18*N];
int ncnt;int sx[N],icnt;
inline int Bin(int x){return lower_bound(sx+1,sx+icnt+1,x)-sx;
}inline void update(int x){cnt[x]=cnt[ls[x]]+cnt[rs[x]];sum[x]=sum[ls[x]]+sum[rs[x]];
}void Modify(int &y,int x,int l,int r,int t,int f){y=++ncnt; int mid=(l+r)>>1;if (l==r){cnt[y]=cnt[x]+f;sum[y]=sum[x]+f*sx[t];return;}if (t<=mid)rs[y]=rs[x],Modify(ls[y],ls[x],l,mid,t,f),update(y);elsels[y]=ls[x],Modify(rs[y],rs[x],mid+1,r,t,f),update(y);
}inline ll Query(int y,int x,int k,int l,int r){if (l==r)return (ll)min(k,cnt[y])*sx[l];int tmp=cnt[rs[y]]-cnt[rs[x]],mid=(l+r)>>1;if (k<=tmp)return Query(rs[y],rs[x],k,mid+1,r);elsereturn sum[rs[y]]-sum[rs[x]]+Query(ls[y],ls[x],k-tmp,l,mid);
}int n,st,d;
int a[N];
ll ans;void Solve(int l,int r,int s,int t){int mid=(s+t)>>1,mi=r,rest;ll best=0,tmp;for (int i=l;i<=r;i++){rest=(mid-i)+min(mid-st,st-i);rest=d-rest;if (rest>0){tmp=Query(root[mid],root[i-1],rest,1,icnt);if (tmp>best) best=tmp,mi=i;}}ans=max(ans,best);if (s<=mid-1) Solve(l,mi,s,mid-1);if (mid+1<=t) Solve(mi,r,mid+1,t);
}int main()
{ll tem;freopen("holiday.in","r",stdin);freopen("holiday.out","w",stdout);read(n); read(st); read(d); st++;for (int i=1;i<=n;i++)read(a[i]),sx[++icnt]=a[i];sort(sx+1,sx+icnt+1); icnt=unique(sx+1,sx+icnt+1)-sx-1;for (int i=1;i<=n;i++) a[i]=Bin(a[i]);for (int i=1;i<=n;i++)Modify(root[i],root[i-1],1,icnt,a[i],1);Solve(1,st,st,n);printf("%lld\n",ans);return 0;
}

[决策单调性 分治 主席树] BZOJ 4367 [IOI2014]holiday假期相关推荐

  1. bzoj1897. tank 坦克游戏(决策单调性分治)

    题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...

  2. 【决策单调性分治优化/四边形不等式优化】监狱警卫

    前言 模板一套就AC了... 题目 guardians.cpp 1S/128M 你负责将监狱的警卫指派到最疯狂的罪犯所在的监狱. 一共有N间牢房排列成一行,编号从1~N. 第i间牢房恰好容纳了一个疯狂 ...

  3. Gym - 101471D Money for Nothing(决策单调性+分治+贪心)

    题目链接:点击查看 题目大意:在二维平面中给出 n 个点可以作为矩形左下角的点,再给出 m 个点可以作为矩形右上角的点,现在问最大可以构造出多大面积的矩形,即如何选择,可以使得 ( b[ j ] . ...

  4. 2020-2021 ACM-ICPC, Asia Seoul Regional Contest L. Two Buildings (决策单调性 分治)

    linkkkkkk 题意: 给定长度为nnn的数组ccc,求max((j−i)∗(ci+cj))max((j-i)*(c_i+c_j))max((j−i)∗(ci​+cj​)) 思路: 将式子转化为m ...

  5. bzoj2687 交与并(贪心+dp+决策单调性+分治)

    双倍经验:portal #include <cstdio> #include <cstring> #include <algorithm> #include < ...

  6. 【CF868F】Yet Another Minimization Problem (决策单调性优化dp+分治)

    description 点击查看题目 solution code 设dpi,jdp_{i,j}dpi,j​:把前iii个数划分jjj段的最小花费,wi,jw_{i,j}wi,j​:[i,j][i,j] ...

  7. 【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性)

    [BZOJ5311/CF321E]贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJ CF 洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! ...

  8. [IOI2013]wombats(网格图分治+线段树+决策单调性)

    洛谷题目传送门 老话说的好,看见网格图,就想分治 我们对行进行分治 设当前分支节点是k,区间是 l [ k ] l[k] l[k]行到 r [ k ] r[k] r[k]行,他的分治子节点分别是 l ...

  9. BZOJ 3277 串 BZOJ 3473 字符串 (广义后缀自动机、时间复杂度分析、启发式合并、线段树合并、主席树)...

    标签那么长是因为做法太多了... 题目链接: (bzoj 3277) https://www.lydsy.com/JudgeOnline/problem.php?id=3277 (bzoj 3473) ...

最新文章

  1. Cassandra 可视化工具
  2. github开源项目分享
  3. 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
  4. 通道注意力新突破!从频域角度出发,浙大提出FcaNet:仅需修改一行代码,简洁又高效
  5. C语言学习之企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;
  6. shell编程中如何执行oracle语句
  7. 数学--数论--随机算法--Pollard Rho 大数分解算法(纯模板带输出)
  8. mysql索引的增删_mysql索引的增删改查怎么实现?
  9. 学习ReasonML编程语言
  10. 手写SpringIOC注解版本
  11. android 盒子远程调试,家+TV机顶盒怎么开启ADB/USB远程调试模式,安装软件?
  12. 正版饥荒服务器怎么弄,饥荒联机版本地服务器如何创建
  13. 梦三国解析服务器spl文件头失败怎么解决,梦三国 卡顿问题的解决方法
  14. 六个免费网站状态监控服务
  15. 电影评论分类(python深度学习——二分类问题)
  16. 网络退化、过拟合、梯度消散/爆炸
  17. Hadoop集群中MySQL数据库的使用
  18. 静态初始化器java
  19. Python爬取网站用户手机号_用Python爬虫爬取学校网妹子QQ号,100行代码撩妹,用技术脱单...
  20. 学会使用jupyter来编写代码

热门文章

  1. 【spark】Spark程序开发
  2. Java8 新特性:Lambda 表达式、方法和构造器引用、Stream API、新时间与日期API、注解
  3. Window10 Bug记录
  4. 新手购买阿里云服务器的方法教程及步骤流程
  5. 读书笔记:《无为而治——设计自动运行的企业制度》
  6. Vue 从零开始,项目搭建以及一些使用经验
  7. Java多线程实现简单抢红包
  8. DSPE-MAL 磷脂改性马来酰亚胺简介CAS1360858-99-6
  9. Android:看完这篇文章,我终于理解了漫游是怎么回事
  10. 阿里云申请免费 SSL证书 https 的图文教程