ATC DP Q - Flowers
ATC DP Q - Flowers
https://atcoder.jp/contests/dp/tasks/dp_q
参考最长上升子序列,这样做事 O ( n 2 ) O(n^2) O(n2)
后来发现只需要从比当前高度小的里面挑出来那个美丽值最大的就好了,然后以高度为界限维护美丽值的最大值就好了。
可以用树状数组或者线段树。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#include <unordered_map>using namespace std;
const int N = 1e6 + 100;
const int mod = 1e9 + 7;
typedef long long ll;typedef ll ll;
ll a[N], h[N];
ll dp[N], tree[N + 1];ll lowbit(ll x) {return x & (-x);
}void update(ll i, ll k) { //在i位置加上kwhile (i <= N) {tree[i] = max(tree[i], k);i = i + lowbit(i);}
}ll query(ll i) {ll res = 0;while (i > 0) {res = max(res, tree[i]);i = i - lowbit(i);}return res;
}int main() {int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> h[i];}for (int i = 1; i <= n; i++) {cin >> a[i];}ll maxn = 0;for (int i = 1; i <= n; i++) {dp[i] = a[i] + query(h[i]);maxn = max(maxn, dp[i]);update(h[i], dp[i]);}cout << maxn << endl;
}
ATC DP Q - Flowers相关推荐
- ATC DP X - Tower
ATC DP X - Tower https://atcoder.jp/contests/dp/tasks/dp_x 如果s2-w1>s1-w2,即s2+w2>s1+w1,也就是s2放在底 ...
- 狂补dp Atcoder Educational DP Contest(全)
狂补dp Atcoder Educational DP Contest(全) 注意 为了减少篇幅,本博客代码部分只放主代码部分,其余省略快读.快输.头文件等代码,即把代码看做伪代码更佳 A - Fro ...
- BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )
既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减 dp(v) = min{ dp(p)+xv*yp+1 } 假设dp(v)由i ...
- 0x53. 动态规划 - 区间DP(习题详解 × 8)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 文章目录 0x53. 动态规划 - 区间DP Problem A. 最优矩阵链乘 Problem B. ...
- 算法笔记--单调队列优化dp
单调队列:队列中元素单调递增或递减,可以用双端队列实现(deque),队列的前面和后面都可以入队出队. 单调队列优化dp: 问题引入: dp[i] = min( a[j] ) ,i-m < j ...
- POJ1088:滑雪(简单dp)
题目链接: http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...
- Fxx and game hdu 5945 单调队列dp
dfs你怕是要爆炸 考虑dp; 很容易想到 dp[ i ] 表示到 i 时的最少转移步数: 那么: dp[ i ]= min( dp[ i ],dp[ i-j ]+1 ); 其中 i-t<=j& ...
- BZOJ3336: Uva10572 Black and White(插头Dp)
解题思路: 分类讨论即可. 代码(懒得删Debug了): 1 #include<map> 2 #include<cstdio> 3 #include<vector> ...
- HDU-3507Print Article 斜率优化DP
学习:https://blog.csdn.net/bill_yang_2016/article/details/54667902 HDU-3507 题意:有若干个单词,每个单词有一个费用,连续的单词组 ...
最新文章
- 原生态的ajax 及json和gson学习资源
- 算法分析与设计-实验四 回溯算法设计
- mysql没法修改数据_MySQL学习笔记之数据的增、删、改实现方法
- 说实话,用完Gradle之后,有点嫌弃Maven了。贼好用!
- 这些有笑点的故事,只有程序员才能get
- POJ 3250 Bad Hair Day【单调队列】
- vscode配置c 环境_SAST Weekly教你在macOS上用VS Code配置C/C++编程环境
- java lambda表达式学习笔记
- 44.用Tornado实现web界面爬虫
- 深入理解asp.net里的IHttpHandler
- 《写给大家看的面向对象编程书》读书介绍
- Origin: Piper diagram/Trilinear diagram (三线图)
- matlab安装matconvnet
- GPS测量误差来源分析
- 外汇天眼:Apple与MetaQuotes之争!谁是下一个Apple?谁会成下一个MT4/5?
- Mysql数据库基本知识一(表的操作在二中)
- 关于wifi portal认证--为浏览器添加wifi认证功能
- spotify电脑下载歌曲_Spotify开源Klio, 音频处理从业者的福音来了
- vr数字景区应运而生,vr云游带商家线上转型
- 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码
热门文章
- keepalive离线安装和过程中的问题
- 昂贵、复杂、低效...中小型企业如何打破大数据技术栈困境?
- scrapy Items
- 适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构
- 2020某大佬字节一面的题目解答
- python稳健性检验_浅谈使用python处理数据的日常经验
- nginx反向代理不显示图片
- 计算机对话框无法切换,电脑输入法切换不了怎么办 怎么设置快捷键教程
- docker 镜像的push 和 pull
- 单片机中用c语言编写 逻辑按位,.单片机的C语言中位操作用法.pdf