链接: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);
}

干物妹小埋 树状数组相关推荐

  1. 干物妹小埋-树状数组-吉首大学2019年程序设计竞赛

    题目链接:https://ac.nowcoder.com/acm/contest/992/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64b ...

  2. 吉首大学2019年程序设计竞赛(重现赛)B——干物妹小埋(树状数组+二分)

    链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 题目描述 在之前很火的一个动漫<干物妹小埋>中,大家对小埋打游戏喝可乐的印象十分的深 ...

  3. 吉首大学校赛B——干物妹小埋(线段树求最大递增子序列)

    链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  4. 吉首大学2019年程序设计竞赛(重现赛) 干物妹小埋(线段树求最长上升子序列)

    链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  5. 吉首大学2019年程序设计竞赛(重现赛) B 干物妹小埋

    链接:https://ac.nowcoder.com/acm/contest/992/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  6. 动态区间第k小:树状数组套权值线段树

    所谓树状数组套权值线段树,就是在树状树组上套权值线段树 (逃) 解析 如何解决静态区间第k小? 使用主席树就ok啦 辣么如何解决动态区间第k小嘞- 我们想想主席树为啥不能解决动态区间第k小 因为如果改 ...

  7. 第五讲 树状数组与线段树 【未完结】

    目录 1264. 动态求连续区间和 [树状数组板子题] 1265. 数星星 [树状数组变种] 1270. 数列区间最大值 [线段树 / 区间内求最大值] 1215. 小朋友排队 [树状数组] AcWi ...

  8. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)

    题目链接 BZOJ 洛谷 整体二分.把求序列第K小的树状数组改成二维树状数组就行了. 初始答案区间有点大,离散化一下. 因为这题是一开始给点,之后询问,so可以先处理该区间值在l~mid的修改,再处理 ...

  9. 模板三连击:树状数组+线段树+主席树

    没事儿干,复习模板...... 1.树状数组 本来不想写这个的,但是反正就几分钟就打完了,所以就写了,水AC数. 洛谷 P3374 [模板]树状数组 1 1 #include<cstdio> ...

最新文章

  1. 开源 免费 java CMS - FreeCMS1.5-建站向导
  2. 关于 调用 JNI JAR java 的说明和注意事项,调用第 靠写不下了
  3. C++ NULL指针学习 - Win32版本
  4. (BFS)Knight Moves(hdu1372)
  5. 利用SVN的post-commit钩子实现多项目自动同步
  6. java 同步异步_Java中的同步于异步
  7. 炫炫炫的十六进制编辑器
  8. oracle 2703,Oracle11gR2光钎链路切换crs服务发生crash
  9. php 计算今天周几,php如何计算当前日期是周几
  10. R语言可视化——熵曲线
  11. Kotlin - 伴生对象与静态成员
  12. 破解花式反爬之大众点评-下
  13. Ztree Fa-Awesome 图标使用
  14. 视频编码码率控制:CBR、VBR和ABR
  15. Ubuntu系统升级后无法进入系统
  16. Android原生webView概述
  17. 高数 极限存在、连续、有界、可积、可导/可微之间的关系
  18. 使用模拟退火算法解决旅行家问题——C
  19. 计算机组装win7实训报告,计算机基础1实验报告win7基本操作.docx
  20. 获取MAC地址的四种方法(转)

热门文章

  1. ty博客后台搭建教程
  2. 小米、维沃等知名企业启用“.CN”“.中国”域名
  3. 职责链模式之真假美猴王
  4. influxdb查看数据库命令_02-命令行操作influx
  5. 个人邮箱Outlook登录入口在哪?遇到登录邮箱服务器配置错误的解决办法
  6. outlook使用网易邮箱
  7. Kabuki即将推出VR购物平台,或是低配版Buy+
  8. 华为EROFS文件系统的性能测试
  9. 计算机毕业设计(10)python毕设作品之多B2C用户商城系统
  10. 抓取猫眼电影实时数据