维护n条直线,保存斜率和截距。

注意维护的时候分类讨论:

1、两端都大于

2、两端都小于

3、交点在中点左

4、交点在中点右

注:

点数不是询问数

初值

码:

#include<iostream>
#include<cstdio>
using namespace std;
#define N 100005
double k[N<<2],ans,b[N<<2],K,B;
long long t;
int n,m,i,j;
char ch[55];
void gai(int o,double l,double r)
{if((k[o]==0&&b[o]==0)||(k[o]*l+b[o]<=K*l+B&&k[o]*r+b[o]<=K*r+B)){k[o]=K;b[o]=B;      return ;}if(k[o]*l+b[o]>=K*l+B&&k[o]*r+b[o]>=K*r+B){    return ;}int mid=(l+r)/2;
double jd=(B-b[o])/(k[o]-K);
if(jd<=mid)
{gai(o<<1,l,mid);
if(k[o]*r+b[o]<=K*r+B)gai(o<<1|1,mid+1,r);
}
if(jd>mid)
{gai(o<<1|1,mid+1,r);
if(k[o]*l+b[o]<=K*l+B)gai(o<<1,l,mid);
}
}
void cha(int o,double l,double r)
{       ans=max(k[o]*t+b[o],ans);if(l==r){return ;}int mid=(l+r)/2;if(t<=mid)cha(o<<1,l,mid);else cha(o<<1|1,mid+1,r);
}
int main()
{scanf("%d",&n);for(i=1;i<=n;i++){scanf("%s",ch);if(ch[0]=='P'){scanf("%lf%lf",&B,&K);B-=K;gai(1,1,100000);}else{ans=-9999999999;scanf("%lld",&t);cha(1,1,100000);         long long daan=ans/100;printf("%lld\n",daan);}   }
}

bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树相关推荐

  1. bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司

    http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include< ...

  2. P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★

    P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...

  3. 【李超树】李超线段树维护凸包(凸壳) (例题:blue mary开公司+线段游戏+ZZH的旅行)

    文章目录 前言 李超树 引入(斜率优化) 什么是李超树? 李超树活着能干点什么? 算法思想(使用手册?) 插入 查询 模板 判断是否覆盖(优不优) 插入 查询 例题 板题:BlueMary开公司 分析 ...

  4. 【BZOJ1568】【Tyvj3490】Blue Mary开公司 李超线段树

    Time:2016.08.02 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 思路: 题意大致为 维护有斜率和截距的若干直线,并求直线x=T(T∈N)与当前已加入直线交点的ym ...

  5. P4254-[JSOI2008]Blue Mary开公司【李超树】

    正题 题目链接:https://www.luogu.com.cn/problem/P4254 题目大意 要求支持操作 插入一条直线. 询问一个纵坐标最高的在直线上的点. 解题思路 李超树的模板题,大概 ...

  6. 【BZOJ 1568】【JSOI 2008】Blue Mary开公司

    经典的splay维护凸壳,但是看了看zky学长的题解最后决定写线段树维护标记永久化. Round1考到了这个之后一直没有理解标记永久化,CTSC也因为自己的缺陷丢掉了一些部分分,so sad 看来以后 ...

  7. BZOJ 1568 Blue Mary开公司

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1568 题意:两个操作:(1)添加一条直线y=kx+b:(1<=k<=100) ...

  8. BZOJ 1567: [JSOI2008]Blue Mary的战役地图

    二次联通门 : BZOJ 1567: [JSOI2008]Blue Mary的战役地图 /*BZOJ 1567: [JSOI2008]Blue Mary的战役地图社会我栋哥人怂P话多暴力能A题正解能W ...

  9. BZOJ 1567: [JSOI2008]Blue Mary的战役地图 矩阵二维hash

    1567: [JSOI2008]Blue Mary的战役地图 Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提 ...

最新文章

  1. Java日常开发的21个坑,你踩过几个?
  2. BSD和云 – 不可错过的BSD聚会
  3. 【学术相关】数学公式如何用Markdown优雅地写出来
  4. matlab逆变换法产生随机数_matlab中产生随机数的程序
  5. struts2 form标签加上validate=true就出错的解决办法
  6. 2011年度最佳 jQuery 插件发布
  7. python程序填空题参照代码模板、完善代码_python二级考试操作题11.pdf
  8. unity自动生成敌人_Unity 3D做2D坦克大战--敌人自动攻击AI编写
  9. 【2017年第1期】基于外卖物流配送大数据的调度系统
  10. 使用TextRange获取输入框中光标的位置
  11. 活动目录AD 取用户过期时间accountExpires
  12. Linux系统下载并安装Redis
  13. python爬虫猫眼电影TOP100(爬虫入门基础,同步入库)
  14. java实现png转ico,支持尺寸选择
  15. 查找微信公众号服务器地址,手把手教大家搭建微信公众号查题功能
  16. 通过Vue解决跨域问题(proxy配置代理)
  17. 十分钟带你解读Effective C++(导读)
  18. 服务器iis建站维护,云服务器iis建站教程
  19. 软件测试工程师面经2022-1-22
  20. python线程间通信

热门文章

  1. matlab没有pso工具箱,MATLAB-PSO工具箱
  2. 红橙Darren视频笔记 仿QQ侧滑效果
  3. Head First设计模式读书笔记六 第七章上 适配器模式
  4. 如何安装tensorflow
  5. C++学习系列笔记(二)
  6. python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
  7. linux删除系统环境变量,Linux系统添加、修改、删除PATH环境变量
  8. java list 重复对象_list集合去除重复对象的实现
  9. python行业缺口_根据缺口的模式选股买股票,python 学习代码
  10. influx 操作_InfluxDB学习之InfluxDB的基本操作-阿里云开发者社区