链接: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

解题思路:将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 干物妹小埋相关推荐

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

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

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

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

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

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

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

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

  5. 吉首大学2019年程序设计竞赛(重现赛) J 滑稽树下你和我 (递归)

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

  6. 吉首大学2019年程序设计竞赛

    Problem A SARS病毒 https://ac.nowcoder.com/acm/contest/992/A 题意: 题解: C++版本一 题解:矩阵快速幂+费马小定理 /* *@Author ...

  7. 吉首大学2019年程序设计竞赛-F 天花乱坠

    题目链接:https://ac.nowcoder.com/acm/contest/992/F 题意:给定正n边形,边长为100,以每条边的中点连线构成新的正n边形,无限循环下去,求所有边的长度和. 思 ...

  8. 福州大学第十四届程序设计竞赛-重现赛(Record)

    Problem A Salty Fish Accept: 108    Submit: 400 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Pr ...

  9. 吉首大学2019年程序设计竞赛 E——多喝嘤料

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

最新文章

  1. Java Selenium起步
  2. [NOI2021 day1]轻重边(树链剖分),路径交点(矩阵行列式)
  3. python读取usb扫码枪数据_vue扫码枪input接收数据
  4. python数据分析兼职能挣钱吗_Python开发能从事数据分析吗
  5. 面试绕不开的 CAP 理论,这篇文章帮你搞定!
  6. 拼多多 App 下架;京东回应“大面积裁员”;西安 ofo 原办公地清空 | 极客头条...
  7. tensorflow sigmoid 如何计算训练数据的正确率_量化训练:Quantization Aware Training in Tensorflow(一)...
  8. 全栈性能测试修炼宝典jmeter实战电子版_推荐一款技术人必备的接口测试神器:Apifox...
  9. ngRoute+ngAnimate与JQM中的页面跳转的区别
  10. oracle查询functions名字,oracle 怎样查看已经存在的函数,过程?
  11. 休闲甜品店创业计划书_甜品店创业计划书
  12. Ionic页面的生命周期 (事件)
  13. PHP超全基础知识点
  14. Android项目的targetSDK=23,在低于Android6.0的部分测试机(类似华为)上运行时出现的系统权限问题...
  15. 89c51控制小车运行c语言,STC89C52单片机蓝牙遥控小车代码
  16. 玉米社:抖音账号被限流了怎么办?一步步教你解除限制
  17. 推荐10个值得一听的国外技术播客
  18. 安装VUE过程中出现的4048错误
  19. 基于Arduino实现简单人体红外感应灯(人体红外传感器+LED)
  20. 浅谈从UI设计转前端的坎坷历程

热门文章

  1. 倒立摆的实现 6.定时器中断和其余初始化
  2. mysql 不让读的锁_MySQL锁问题(脏读、不可重复读、幻读)
  3. 基于Android平台im软件开发,基于Android平台IM软件多媒体数据传输保护
  4. IDEA使用java开发时一个奇葩问题
  5. 100ml干胶能带上地铁吗_定型喷雾可以带上地铁吗
  6. 摄像头拍摄运动物体,产生运动模糊/拖影的原因分析
  7. 编译原理——语法制导翻译并产生中间代码(while,复合语句和过程调用语句的翻译)
  8. unity接入声网音频sdk
  9. malloc,vmalloc,kmalloc区别
  10. win10保存文件需要管理员权限无法保存