BZOJ 1568 Blue Mary开公司
李超线段树。
GTMD调了一下午。。。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 100500
#define eps 1e-8
#define inf 10000000
using namespace std;
long long n,x,tot=,root,ls[maxn<<],rs[maxn<<];
double s,p,b[maxn<<],k[maxn<<],ans=;
char type[];
bool flag[maxn<<];
void build(long long &now,long long left,long long right)
{
now=++tot;b[now]=k[now]=-inf;
if (left==right) return;
long long mid=(left+right)>>;
build(ls[now],left,mid);
build(rs[now],mid+,right);
}
double f (double s,int pos,double p)
{
return s+(double)(pos-)*p;
}
void modify(long long now,long long left,long long right,double s,double p)
{
double f1,f2,f3,f4;
if (!flag[now])
{
k[now]=p;b[now]=s;flag[now]=true;
return;
}
f1=s+(left-)*p;f2=b[now]+(double)(left-)*k[now];f3=s+(double)(right-)*p;f4=b[now]+(double)(right-)*k[now];
if ((f1<f2) && (f3<f4)) return;
if ((f1>f2) && (f3>f4)) {b[now]=s;k[now]=p;return;}
if (left==right) return;int mid=(left+right)>>;
double r1=f(s,mid,p),r2=f(b[now],mid,k[now]);
if (r1>r2) {swap(s,b[now]);swap(p,k[now]);}
if (!((r1<r2)^(f1>f2))) modify(ls[now],left,mid,s,p);
else modify(rs[now],mid+,right,s,p);
}
void ask(long long now,long long left,long long right,long long pos)
{
ans=max(ans,b[now]+(pos-)*k[now]);
if (left==right) return;
long long mid=(left+right)>>;
if (pos<=mid) ask(ls[now],left,mid,pos);
else ask(rs[now],mid+,right,pos);
}
int main()
{
scanf("%lld",&n);
build(root,,);
for (long long i=;i<=n;i++)
{
scanf("%s",type);
if (type[]=='P')
{
scanf("%lf%lf",&s,&p);
modify(root,,,s,p);
}
else
{
scanf("%lld",&x);ans=;
ask(root,,,x);
printf("%lld\n",(long long)(ans/+eps));
}
}
return ;
}
BZOJ 1568 Blue Mary开公司的更多相关文章
- [BZOJ 1568][JSOI2008]Blue Mary开公司
[BZOJ 1568][JSOI2008]Blue Mary开公司 题意 \(n\) 次操作, 维护一个一次函数集合 \(S\). 有两种操作: 给定 \(b\) 和 \(k\), 向 \(S\) 中 ...
- 数据结构(线段树):BZOJ 1568 [JSOI2008]Blue Mary开公司
1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 602 Solved: 214[Submit ...
- bzoj 1568 [JSOI2008]Blue Mary开公司 超哥线段树
[JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1808 Solved: 639[Submit][Sta ...
- bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司
http://www.lydsy.com/JudgeOnline/problem.php?id=1568 写多了就觉着水了... #include<cstdio> #include< ...
- 1568: [JSOI2008]Blue Mary开公司
1568: [JSOI2008]Blue Mary开公司 题目描述 传送门 题目分析 简单分析可以发现就是不停给出了\(n\)条直线,要求每次给出一条直线后求出所有直线在横坐标为\(x\)时\(y\) ...
- 1568: [JSOI2008]Blue Mary开公司(超哥线段树)
1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1198 Solved: 418 Descr ...
- 【BZOJ-1568】Blue Mary开公司 李超线段树 (标记永久化)
1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 557 Solved: 192[Submit ...
- 【BZOJ1568】[JSOI2008]Blue Mary开公司(李超线段树)
[BZOJ1568][JSOI2008]Blue Mary开公司(李超线段树) 题面 BZOJ 洛谷 题解 是模板题啊. #include<iostream> #include<cs ...
- 【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树
[BZOJ1568][JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词“Query”或“P ...
随机推荐
- JavaWeb学习-Tomcat
打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:
- python中的md5加密
import md5 import types def get_md5(data): if type(data) is not types.StringType: # 检验输入的数据是否为字符串 pr ...
- c语言详解sizeof
一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等. 它并不是函数. sizeof操作符以字节形式给出了其操作数的存储大小. 操 ...
- Xcode 8 打包上线 iTunes Connect 找不到构建版本
Xcode 8 打包上线 iTunes Connect 找不到构建版本 最近苹果推出新的mac操作系统(macOS Sierra 10.12),大家可能都已经升级了,作为一个开发者,小编肯定是第一时间 ...
- JGibbLDA、GibbsLDA++问题解决
LDA(Latent Dirichlet Allocation )主题模型是一种用统计进行文本挖掘的方法,它是pLSA(概率潜在语义分析)主题模型基础上加上贝叶斯框架而得到的模型.目前已应用于自然语言 ...
- HTML5标签学习之~~~
<article> 标签 article 字面意思为“文章”.在web页面中表现为独立的内容,如一篇新闻,一篇评论,一段名言,一段联系方式.这其中包括两方面,一为整个页面的主旨内容,另外就 ...
- 转载:Javascript作用域原理
首先看一个例子: var name = 'laruence'; function echo() { alert(name); var name = 'eve'; alert(name); alert( ...
- 454. 4Sum II ——查找本质:hash最快,二分次之
Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such t ...
- FZU 2214 Knapsack problem 01背包变形
题目链接:Knapsack problem 大意:给出T组测试数据,每组给出n个物品和最大容量w.然后依次给出n个物品的价值和体积. 问,最多能盛的物品价值和是多少? 思路:01背包变形,因为w太大, ...
- iOS应用程序间共享数据
我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来 ...