李超线段树。

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开公司的更多相关文章

  1. [BZOJ 1568][JSOI2008]Blue Mary开公司

    [BZOJ 1568][JSOI2008]Blue Mary开公司 题意 \(n\) 次操作, 维护一个一次函数集合 \(S\). 有两种操作: 给定 \(b\) 和 \(k\), 向 \(S\) 中 ...

  2. 数据结构(线段树):BZOJ 1568 [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 602  Solved: 214[Submit ...

  3. bzoj 1568 [JSOI2008]Blue Mary开公司 超哥线段树

    [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1808  Solved: 639[Submit][Sta ...

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

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

  5. 1568: [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 题目描述 传送门 题目分析 简单分析可以发现就是不停给出了\(n\)条直线,要求每次给出一条直线后求出所有直线在横坐标为\(x\)时\(y\) ...

  6. 1568: [JSOI2008]Blue Mary开公司(超哥线段树)

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1198  Solved: 418 Descr ...

  7. 【BZOJ-1568】Blue Mary开公司 李超线段树 (标记永久化)

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 557  Solved: 192[Submit ...

  8. 【BZOJ1568】[JSOI2008]Blue Mary开公司(李超线段树)

    [BZOJ1568][JSOI2008]Blue Mary开公司(李超线段树) 题面 BZOJ 洛谷 题解 是模板题啊. #include<iostream> #include<cs ...

  9. 【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树

    [BZOJ1568][JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数.  接下来N行,每行开头一个单词“Query”或“P ...

随机推荐

  1. JavaWeb学习-Tomcat

    打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

  2. python中的md5加密

    import md5 import types def get_md5(data): if type(data) is not types.StringType: # 检验输入的数据是否为字符串 pr ...

  3. c语言详解sizeof

    一.sizeof的概念   sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.     它并不是函数.     sizeof操作符以字节形式给出了其操作数的存储大小.     操 ...

  4. Xcode 8 打包上线 iTunes Connect 找不到构建版本

    Xcode 8 打包上线 iTunes Connect 找不到构建版本 最近苹果推出新的mac操作系统(macOS Sierra 10.12),大家可能都已经升级了,作为一个开发者,小编肯定是第一时间 ...

  5. JGibbLDA、GibbsLDA++问题解决

    LDA(Latent Dirichlet Allocation )主题模型是一种用统计进行文本挖掘的方法,它是pLSA(概率潜在语义分析)主题模型基础上加上贝叶斯框架而得到的模型.目前已应用于自然语言 ...

  6. HTML5标签学习之~~~

    <article> 标签 article 字面意思为“文章”.在web页面中表现为独立的内容,如一篇新闻,一篇评论,一段名言,一段联系方式.这其中包括两方面,一为整个页面的主旨内容,另外就 ...

  7. 转载:Javascript作用域原理

    首先看一个例子: var name = 'laruence'; function echo() { alert(name); var name = 'eve'; alert(name); alert( ...

  8. 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 ...

  9. FZU 2214 Knapsack problem 01背包变形

    题目链接:Knapsack problem 大意:给出T组测试数据,每组给出n个物品和最大容量w.然后依次给出n个物品的价值和体积. 问,最多能盛的物品价值和是多少? 思路:01背包变形,因为w太大, ...

  10. iOS应用程序间共享数据

    我们知道iOS由于沙盒的存在,应用程序不能越过自己的区域去访问别的存储空间的内容,不过可能有许多场景我们需要在应用程序之间共享数据,比如多个应用共用用户名密码进行登录等.虽然我们不能直接通过文件系统来 ...