吉首大学2019年程序设计竞赛(重现赛) B 干物妹小埋
链接:https://ac.nowcoder.com/acm/contest/992/B
来源:牛客网
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
第一行一个整数n(0<n<=200000),表示小埋家的家具数。 第二行n个整数,对于每个整数ai, 0<=ai<=10^9,表示第i个家具的高度。 第三行n个整数,对于每个整数vi, 0<=vi<=10^9,表示第i个家具上的快乐水的happy值。
输出描述:
一个整数,表示小埋获得的happy值总和。
输入
复制
6 2 1 1 3 3 4 3 1 1 1 1 1
输出
复制
6
说明
路线:2->3->3->4 答案:3+1+1+1 解题思路:将a值从小到大排序,如果a值相同把编号小的放前面,然后用线段树维护happy值总和的最大值,每次查找比小于当前编号的最大happy值,如果加上当前happy大于答案,则对答案进行更新。然后在将该happy值更新到线段树中。代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=200005; int n; struct node{int id;ll a,v; }p[maxn]; bool cmp(node x,node y){if(x.a==y.a) return x.id<y.id;return x.a<y.a; } ll tree[maxn*4]; void pushup(int rt){tree[rt]=max(tree[rt<<1],tree[rt<<1|1]); } void update(int pos,ll val,int l,int r,int rt){if(l==r){tree[rt]+=val;return;}int mid=l+r>>1;if(mid>=pos) update(pos,val,l,mid,rt<<1);if(mid<pos) update(pos,val,mid+1,r,rt<<1|1);pushup(rt); } ll ask(int L,int R,int l,int r,int rt){if(L<=l&&R>=r) return tree[rt];ll ans=0;int mid=l+r>>1;if(mid>=L) ans=max(ans,ask(L,R,l,mid,rt<<1));if(mid<R) ans=max(ans,ask(L,R,mid+1,r,rt<<1|1));return ans; } int main(){scanf("%d",&n);for(int i=1;i<=n;i++) scanf("%lld",&p[i].a);for(int i=1;i<=n;i++) {scanf("%lld",&p[i].v);p[i].id=i;}sort(p+1,p+1+n,cmp);ll ans=0;for(int i=1;i<=n;i++){ll Max=ask(1,p[i].id,1,n,1); //询问比当前编号小的happy总和最大值ans=max(ans,Max+p[i].v); //更新答案update(p[i].id,Max+p[i].v,1,n,1); //将该happy更新到区间中 }cout<<ans<<endl;return 0; }
转载于:https://www.cnblogs.com/zjl192628928/p/11187626.html
吉首大学2019年程序设计竞赛(重现赛) B 干物妹小埋相关推荐
- 吉首大学2019年程序设计竞赛(重现赛) 干物妹小埋(线段树求最长上升子序列)
链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 吉首大学校赛B——干物妹小埋(线段树求最大递增子序列)
链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 吉首大学2019年程序设计竞赛(重现赛)B——干物妹小埋(树状数组+二分)
链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深 ...
- 干物妹小埋-树状数组-吉首大学2019年程序设计竞赛
题目链接:https://ac.nowcoder.com/acm/contest/992/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64b ...
- 吉首大学2019年程序设计竞赛(重现赛) J 滑稽树下你和我 (递归)
链接:https://ac.nowcoder.com/acm/contest/992/J 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 吉首大学2019年程序设计竞赛
Problem A SARS病毒 https://ac.nowcoder.com/acm/contest/992/A 题意: 题解: C++版本一 题解:矩阵快速幂+费马小定理 /* *@Author ...
- 吉首大学2019年程序设计竞赛-F 天花乱坠
题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...
- 福州大学第十四届程序设计竞赛-重现赛(Record)
Problem A Salty Fish Accept: 108 Submit: 400 Time Limit: 1000 mSec Memory Limit : 32768 KB Pr ...
- 吉首大学2019年程序设计竞赛 E——多喝嘤料
链接:https://ac.nowcoder.com/acm/contest/992/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
最新文章
- Java Selenium起步
- [NOI2021 day1]轻重边(树链剖分),路径交点(矩阵行列式)
- python读取usb扫码枪数据_vue扫码枪input接收数据
- python数据分析兼职能挣钱吗_Python开发能从事数据分析吗
- 面试绕不开的 CAP 理论,这篇文章帮你搞定!
- 拼多多 App 下架;京东回应“大面积裁员”;西安 ofo 原办公地清空 | 极客头条...
- tensorflow sigmoid 如何计算训练数据的正确率_量化训练:Quantization Aware Training in Tensorflow(一)...
- 全栈性能测试修炼宝典jmeter实战电子版_推荐一款技术人必备的接口测试神器:Apifox...
- ngRoute+ngAnimate与JQM中的页面跳转的区别
- oracle查询functions名字,oracle 怎样查看已经存在的函数,过程?
- 休闲甜品店创业计划书_甜品店创业计划书
- Ionic页面的生命周期 (事件)
- PHP超全基础知识点
- Android项目的targetSDK=23,在低于Android6.0的部分测试机(类似华为)上运行时出现的系统权限问题...
- 89c51控制小车运行c语言,STC89C52单片机蓝牙遥控小车代码
- 玉米社:抖音账号被限流了怎么办?一步步教你解除限制
- 推荐10个值得一听的国外技术播客
- 安装VUE过程中出现的4048错误
- 基于Arduino实现简单人体红外感应灯(人体红外传感器+LED)
- 浅谈从UI设计转前端的坎坷历程
热门文章
- 倒立摆的实现 6.定时器中断和其余初始化
- mysql 不让读的锁_MySQL锁问题(脏读、不可重复读、幻读)
- 基于Android平台im软件开发,基于Android平台IM软件多媒体数据传输保护
- IDEA使用java开发时一个奇葩问题
- 100ml干胶能带上地铁吗_定型喷雾可以带上地铁吗
- 摄像头拍摄运动物体,产生运动模糊/拖影的原因分析
- 编译原理——语法制导翻译并产生中间代码(while,复合语句和过程调用语句的翻译)
- unity接入声网音频sdk
- malloc,vmalloc,kmalloc区别
- win10保存文件需要管理员权限无法保存