bzoj1568 [JSOI2008]Blue Mary开公司 标记永久化线段树
维护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开公司 标记永久化线段树相关推荐
- bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司
http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include< ...
- P1083 借教室(标记永久化线段树/二分+前缀和)难度⭐⭐⭐★
P1083 借教室 标记永久化线段树 很典型的区间修改问题,先输入赋值建树(这就是最典型的线段树呀,别忘了),然后修改 这里问的是是否有足够的空教室,所以线段树中 min 代表的是当前区间内最小的剩余 ...
- 【李超树】李超线段树维护凸包(凸壳) (例题:blue mary开公司+线段游戏+ZZH的旅行)
文章目录 前言 李超树 引入(斜率优化) 什么是李超树? 李超树活着能干点什么? 算法思想(使用手册?) 插入 查询 模板 判断是否覆盖(优不优) 插入 查询 例题 板题:BlueMary开公司 分析 ...
- 【BZOJ1568】【Tyvj3490】Blue Mary开公司 李超线段树
Time:2016.08.02 Author:xiaoyimi 转载注明出处谢谢 传送门1 传送门2 思路: 题意大致为 维护有斜率和截距的若干直线,并求直线x=T(T∈N)与当前已加入直线交点的ym ...
- P4254-[JSOI2008]Blue Mary开公司【李超树】
正题 题目链接:https://www.luogu.com.cn/problem/P4254 题目大意 要求支持操作 插入一条直线. 询问一个纵坐标最高的在直线上的点. 解题思路 李超树的模板题,大概 ...
- 【BZOJ 1568】【JSOI 2008】Blue Mary开公司
经典的splay维护凸壳,但是看了看zky学长的题解最后决定写线段树维护标记永久化. Round1考到了这个之后一直没有理解标记永久化,CTSC也因为自己的缺陷丢掉了一些部分分,so sad 看来以后 ...
- BZOJ 1568 Blue Mary开公司
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1568 题意:两个操作:(1)添加一条直线y=kx+b:(1<=k<=100) ...
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图
二次联通门 : BZOJ 1567: [JSOI2008]Blue Mary的战役地图 /*BZOJ 1567: [JSOI2008]Blue Mary的战役地图社会我栋哥人怂P话多暴力能A题正解能W ...
- BZOJ 1567: [JSOI2008]Blue Mary的战役地图 矩阵二维hash
1567: [JSOI2008]Blue Mary的战役地图 Description Blue Mary最近迷上了玩Starcraft(星际争霸) 的RPG游戏.她正在设法寻找更多的战役地图以进一步提 ...
最新文章
- Java日常开发的21个坑,你踩过几个?
- BSD和云 – 不可错过的BSD聚会
- 【学术相关】数学公式如何用Markdown优雅地写出来
- matlab逆变换法产生随机数_matlab中产生随机数的程序
- struts2 form标签加上validate=true就出错的解决办法
- 2011年度最佳 jQuery 插件发布
- python程序填空题参照代码模板、完善代码_python二级考试操作题11.pdf
- unity自动生成敌人_Unity 3D做2D坦克大战--敌人自动攻击AI编写
- 【2017年第1期】基于外卖物流配送大数据的调度系统
- 使用TextRange获取输入框中光标的位置
- 活动目录AD 取用户过期时间accountExpires
- Linux系统下载并安装Redis
- python爬虫猫眼电影TOP100(爬虫入门基础,同步入库)
- java实现png转ico,支持尺寸选择
- 查找微信公众号服务器地址,手把手教大家搭建微信公众号查题功能
- 通过Vue解决跨域问题(proxy配置代理)
- 十分钟带你解读Effective C++(导读)
- 服务器iis建站维护,云服务器iis建站教程
- 软件测试工程师面经2022-1-22
- python线程间通信
热门文章
- matlab没有pso工具箱,MATLAB-PSO工具箱
- 红橙Darren视频笔记 仿QQ侧滑效果
- Head First设计模式读书笔记六 第七章上 适配器模式
- 如何安装tensorflow
- C++学习系列笔记(二)
- python process返回值_如何恢复传递给multiprocessing.Process的函数的返回值?
- linux删除系统环境变量,Linux系统添加、修改、删除PATH环境变量
- java list 重复对象_list集合去除重复对象的实现
- python行业缺口_根据缺口的模式选股买股票,python 学习代码
- influx 操作_InfluxDB学习之InfluxDB的基本操作-阿里云开发者社区