bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司
http://www.lydsy.com/JudgeOnline/problem.php?id=1568
写多了就觉着水了。。。
- #include<cstdio>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- #define N 100001
- double a[N<<],b[N<<];
- bool have[N<<];
- long long ans;
- void read(int &x)
- {
- x=; char c=getchar();
- while(!isdigit(c)) c=getchar();
- while(isdigit(c)) { x=x*+c-''; c=getchar(); }
- }
- void change(int k,int l,int r,double A,double B)
- {
- if(!have[k])
- {
- have[k]=true;
- a[k]=A;
- b[k]=B;
- return;
- }
- if(l==r)
- {
- a[k]=max(a[k],A);
- return;
- }
- else
- {
- if(A>a[k]+(r-l)*b[k])
- {
- a[k]=A;
- b[k]=B;
- return;
- }
- if(a[k]>A+(r-l)*B) return;
- int mid=l+r>>;
- if(A<a[k])
- {
- if(A+(mid-l)*B>a[k]+(mid-l)*b[k])
- {
- change(k<<,l,mid,a[k],b[k]);
- a[k]=A;
- b[k]=B;
- }
- else change(k<<|,mid+,r,A+(mid+-l)*B,B);
- }
- else
- {
- if(A+(mid-l)*B>a[k]+(mid-l)*b[k])
- {
- change(k<<|,mid+,r,a[k]+(mid+-l)*b[k],b[k]);
- a[k]=A;
- b[k]=B;
- }
- else change(k<<,l,mid,A,B);
- }
- }
- }
- void query(int k,int l,int r,int p)
- {
- if(!have[k]) return;
- if(l==r)
- {
- ans=max(ans,(long long)a[k]);
- return;
- }
- ans=max(ans,(long long)(a[k]+(p-l)*b[k]));
- int mid=l+r>>;
- if(p<=mid) query(k<<,l,mid,p);
- else query(k<<|,mid+,r,p);
- }
- int main()
- {
- int n,x;
- char c[];
- double s,p;
- read(n);
- while(n--)
- {
- scanf("%s",c);
- if(c[]=='Q')
- {
- read(x);
- ans=;
- query(,,N-,x);
- cout<<ans/<<'\n';
- }
- else
- {
- scanf("%lf%lf",&s,&p);
- change(,,N-,s,p);
- }
- }
- }
1568: [JSOI2008]Blue Mary开公司
Time Limit: 15 Sec Memory Limit: 162 MB
Submit: 1706 Solved: 593
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
Project 5.10200 0.65000
Project 2.76200 1.43000
Query 4
Query 2
Project 3.80200 1.17000
Query 2
Query 3
Query 1
Project 4.58200 0.91000
Project 5.36200 0.39000
Sample Output
0
0
0
0
bzoj千题计划219:bzoj1568: [JSOI2008]Blue Mary开公司的更多相关文章
- BZOJ1568: [JSOI2008]Blue Mary开公司【李超树】
Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词"Query"或"Project". 若单词为Q ...
- BZOJ1568: [JSOI2008]Blue Mary开公司
可以平衡树或线段树维护斜率来做. 还有一种线段树直接打标记的做法: 线段树每个节点存一条线段作为标记,打标记时如果已有标记,则把占优区间小的那个线段下放. #include<cstdio> ...
- 2019.02.11 bzoj1568: [JSOI2008]Blue Mary开公司(线段树)
传送门 题意简述:维护整体加一条线段,求单点极值. 思路: 直接上李超线段树维护即可. 代码: #include<bits/stdc++.h> #define ri register in ...
- [bzoj1568][JSOI2008]Blue Mary开公司——李超线段树
题目大意 题解 这道题需要用到一种叫做李超线段树的东西.我对于李超线段树,是这样理解的: 给节点打下的标记不进行下传,而是仅仅在需要的时候进行下传,这就是所谓永久化标记. 对于这道题,借用一张图, 这 ...
- 【BZOJ1568】[JSOI2008]Blue Mary开公司(李超线段树)
[BZOJ1568][JSOI2008]Blue Mary开公司(李超线段树) 题面 BZOJ 洛谷 题解 是模板题啊. #include<iostream> #include<cs ...
- [BZOJ 1568][JSOI2008]Blue Mary开公司
[BZOJ 1568][JSOI2008]Blue Mary开公司 题意 \(n\) 次操作, 维护一个一次函数集合 \(S\). 有两种操作: 给定 \(b\) 和 \(k\), 向 \(S\) 中 ...
- 【BZOJ1568】[JSOI2008]Blue Mary开公司 线段树
[BZOJ1568][JSOI2008]Blue Mary开公司 Description Input 第一行 :一个整数N ,表示方案和询问的总数. 接下来N行,每行开头一个单词“Query”或“P ...
- 数据结构(线段树):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 ...
随机推荐
- [AH/HNOI2017]单旋
这道题可以用LCT做,开set,LCT,二叉树 操作1:直接开set,找到它要插入的位置,一定是前驱,后缀中deep最大的(显然手玩) 操作2:set+LCT询问路径,直接手动提上去,因为树的形态不变 ...
- PowerShell 发布farm solution
SharePoint PowerShell在SharePoint Product列表里边,然后以管理员权限启动. 1. 添加Solution 到 SharePoint Farm. Add-SPSolu ...
- JDBC存在的问题
1.数据库连接频繁的创建和关闭,缺点是浪费数据库资源,影响操作效率. 设想:使用数据库连接池 2.sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护. ...
- NEO从入门到开窗(3) - NEO编译器
一.啰嗦两句 第一节的时候咱说了C#编译完了之后,就该NEO的编译器搞事情了.我们完全可以按这个节奏搞,手动用NEO的编译器neon编译dll文件生成指令码文件.avm.但是NEO团队给我们写智能合约 ...
- vue组件利用formdata图片预览以及上传《转载》
转载修改 在项目中直接新建一个单文件页,复制一下代码即可 upload组件: <template> <div class="vue-uploader" ...
- Python 中 mySQL 中的语句
class DeleteInventorybusiness(BaseBusiness): def DeleteInventory(self,Delete_goodsID): DeleteInvento ...
- 在oracle中,group by后将字符拼接,以及自定义排序
1.在oracle中,group by后将字符拼接.任务:在学生表中,有studentid和subject两个字段.要求对studentid进行group by分组,并将所选科目拼接在一起.oracl ...
- spring Boot+spring Cloud实现微服务详细教程第二篇
上一篇文章已经说明了一下,关于spring boot创建maven项目的简单步骤,相信很多熟悉Maven+Eclipse作为开发常用工具的朋友们都一目了然,这篇文章主要讲解一下,构建spring bo ...
- 笔记:Hibernate 数据库方言表
关系数据库 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect.DB2400Dialect DB2 OS/ ...
- C#设置和获取系统环境变量
C#设置和获取环境变量 1.前言 本来想拿学校机房的Android编辑器直接粘到自己电脑上用,发现它的eclipse是 32位的,而我的JDK是64位的,于是想到干脆装两个JDK,用C#做一个能够更改 ...