博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #413 C. Fountains (线段树的创建、查询、更新)
阅读量:5361 次
发布时间:2019-06-15

本文共 1919 字,大约阅读时间需要 6 分钟。

 vj题目链接:

题意:

有 n 个待建的喷泉,每个的建造代价为pi coins或者pi diamonds(coins 和 diamonds 不可互相兑换),每个喷泉的魅力为bi。问在原有c coins和d diamonds 的情况下,选择两个喷泉,使得在能支付代价的前提下,魅力值最高?如果拥有的钱不足以支付两个喷泉,就输出0,否则输出两个喷泉的最大b值的和。

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 int maxn=100010; 7 int tree[2][400010]; 8 int b,p; 9 char ch; 10 void build(int t,int rt,int l,int r)//新建二叉搜索树 11 { 12 if(l==r) 13 { 14 tree[t][rt]=0; 15 return ; 16 } 17 int mid=(l+r)>>1; 18 build(t,rt<<1,l,mid); 19 build(t,(rt<<1)+1,mid+1,r); 20 } 21 int query(int t,int rt,int l,int r,int ql,int qr)//查询二叉搜索树 22 { 23 if(ql<=l&&qr>=r) 24 { 25 return tree[t][rt]; 26 } 27 int mid=(l+r)>>1; 28 int ll=0,rr=0; 29 if(ql<=mid) 30 { 31 ll=query(t,rt<<1,l,mid,ql,qr); 32 } 33 if(qr>mid) 34 { 35 rr=query(t,(rt<<1)+1,mid+1,r,ql,qr); 36 } 37 return max(ll,rr); 38 } 39 void update(int t,int rt,int l,int r,int q,int v)//更新二叉搜索树 40 { 41 if(l==r) 42 { 43 tree[t][rt]=max(tree[t][rt],v); 44 return ; 45 } 46 int mid=(l+r)>>1; 47 if(q<=mid) 48 { 49 update(t,rt<<1,l,mid,q,v); 50 } 51 if(q>mid) 52 { 53 update(t,(rt<<1)+1,mid+1,r,q,v); 54 } 55 tree[t][rt]=max(tree[t][rt<<1],tree[t][(rt<<1)+1]); 56 57 } 58 int main() 59 { 60 int n,c,d; 61 cin>>n>>c>>d; 62 build(0,1,0,c); 63 build(1,1,0,d); 64 int maxc=0,maxd=0; 65 int ans=0; 66 for(int i=0;i
>b>>p>>ch; 69 if(ch=='C') 70 { 71 if(p<=c) 72 { 73 maxc=max(maxc,b); 74 int p1=c-p; 75 int b1=query(0,1,0,c,0,p1); 76 cout<
<

 

转载于:https://www.cnblogs.com/1013star/p/9280331.html

你可能感兴趣的文章
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
HAL层三类函数及其作用
查看>>
web@h,c小总结
查看>>
Data Structure 基本概念
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>