干物妹小埋 树状数组
链接:https://ac.nowcoder.com/acm/contest/992/B
来源:牛客网
- 树状数组
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
在之前很火的一个动漫《干物妹小埋》中,大家对小埋打游戏喝可乐的印象十分的深刻。
现在欧尼酱将小埋的快乐水全部分开藏在了家具的顶端。
小埋使出空中1080°转身接战术翻滚跳到任一家具上,她相信,只要她翻滚的足够快,欧尼酱就跟不上她。
1.为获取梦幻开局,小埋一套技能可以使她一开始掉落在任一家具上。
2.小埋家的家具按顺序给出,每个家具可跳可不跳,为避开欧尼酱的追击,小埋翻滚到某个家具上面后,只能向前继续翻滚。
3.启动超重力感应系统的小埋不会从较高的家具翻滚到较低的家具上。
4.由于每个家具上的快乐水都有对应的happy值,IQ==250的小埋会选择一条happy值总和最大的路线。
那么,最终小埋将获得的happy值总和是多少呢?
输入描述:
第一行一个整数n(0<n<=200000),表示小埋家的家具数。
第二行n个整数,对于每个整数ai, 0<=ai<=10^9,表示第i个家具的高度。
第三行n个整数,对于每个整数vi, 0<=vi<=10^9,表示第i个家具上的快乐水的happy值。
输出描述:
一个整数,表示小埋获得的happy值总和。
示例1
输入
复制
6
2 1 1 3 3 4
3 1 1 1 1 1
输出
复制
6
说明
路线:2->3->3->4
答案:3+1+1+1
- 树状数组 维护低位置的点到高位置的点的最大收益
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n;
ll h[200010],happy[200010];
vector<ll>v;
ll c[200010];
int lowbit(int x)
{return x&(-x);
}
void update(ll x,int pos)
{while(pos<=n){c[pos]=max(c[pos],x);pos+=lowbit(pos);}}
ll getmax(int pos)
{ll s=0;while(pos){s=max(s,c[pos]);pos-=lowbit(pos);}return s;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&h[i]);v.push_back(h[i]);}for(int i=1;i<=n;i++){scanf("%lld",&happy[i]);}sort(v.begin(),v.end());v.erase(unique(v.begin(),v.end()),v.end());ll ans=0;for(int i=1;i<=n;i++){int pos=lower_bound(v.begin(),v.end(),h[i])-v.begin()+1;ll tt=getmax(pos);ans=max(ans,happy[i]+tt);update(tt+happy[i],pos) ;}printf("%lld\n",ans);
}
干物妹小埋 树状数组相关推荐
- 干物妹小埋-树状数组-吉首大学2019年程序设计竞赛
题目链接:https://ac.nowcoder.com/acm/contest/992/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64b ...
- 吉首大学2019年程序设计竞赛(重现赛)B——干物妹小埋(树状数组+二分)
链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深 ...
- 吉首大学校赛B——干物妹小埋(线段树求最大递增子序列)
链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 吉首大学2019年程序设计竞赛(重现赛) 干物妹小埋(线段树求最长上升子序列)
链接: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 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...
- 动态区间第k小:树状数组套权值线段树
所谓树状数组套权值线段树,就是在树状树组上套权值线段树 (逃) 解析 如何解决静态区间第k小? 使用主席树就ok啦 辣么如何解决动态区间第k小嘞- 我们想想主席树为啥不能解决动态区间第k小 因为如果改 ...
- 第五讲 树状数组与线段树 【未完结】
目录 1264. 动态求连续区间和 [树状数组板子题] 1265. 数星星 [树状数组变种] 1270. 数列区间最大值 [线段树 / 区间内求最大值] 1215. 小朋友排队 [树状数组] AcWi ...
- BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
题目链接 BZOJ 洛谷 整体二分.把求序列第K小的树状数组改成二维树状数组就行了. 初始答案区间有点大,离散化一下. 因为这题是一开始给点,之后询问,so可以先处理该区间值在l~mid的修改,再处理 ...
- 模板三连击:树状数组+线段树+主席树
没事儿干,复习模板...... 1.树状数组 本来不想写这个的,但是反正就几分钟就打完了,所以就写了,水AC数. 洛谷 P3374 [模板]树状数组 1 1 #include<cstdio> ...
最新文章
- 开源 免费 java CMS - FreeCMS1.5-建站向导
- 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
- C++ NULL指针学习 - Win32版本
- (BFS)Knight Moves(hdu1372)
- 利用SVN的post-commit钩子实现多项目自动同步
- java 同步异步_Java中的同步于异步
- 炫炫炫的十六进制编辑器
- oracle 2703,Oracle11gR2光钎链路切换crs服务发生crash
- php 计算今天周几,php如何计算当前日期是周几
- R语言可视化——熵曲线
- Kotlin - 伴生对象与静态成员
- 破解花式反爬之大众点评-下
- Ztree Fa-Awesome 图标使用
- 视频编码码率控制:CBR、VBR和ABR
- Ubuntu系统升级后无法进入系统
- Android原生webView概述
- 高数 极限存在、连续、有界、可积、可导/可微之间的关系
- 使用模拟退火算法解决旅行家问题——C
- 计算机组装win7实训报告,计算机基础1实验报告win7基本操作.docx
- 获取MAC地址的四种方法(转)