Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)
题意:
线段树做法
分析:
因为每次都是在当前位置的前缀区间查询最大值,所以可以直接用树状数组优化。比线段树快了12ms~
代码:
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;//[)
const int maxn = 100005, INF = 0x3fffffff;
#define pi acos(-1.0)
typedef long long ll;
ll dp[maxn];
ll tv[maxn], v[maxn];
int tot;
ll query(int pos)
{ll res = 0;while(pos > 0){res = max(res, dp[pos]);pos -= pos & - pos;}return res;
}
void update(int pos, ll x)
{while(pos <= tot){dp[pos] = max(dp[pos], x);pos += pos & - pos;}
}
int main (void)
{int n;scanf("%d",&n);int r, h;for(int i = 0; i < n; i++){scanf("%d%d",&r,&h);tv[i] = v[i] =(ll) r * r * h;}sort(tv, tv + n);tot = unique(tv, tv + n) - tv;ll res = 0;for(int i = 0; i < n; i++){int pos = lower_bound(tv, tv + tot, v[i]) - tv + 1;ll tmp = query(pos - 1) + v[i];res = max(res, tmp);update(pos, tmp);}printf("%.10lf\n", res * pi);return 0;
}
转载于:https://www.cnblogs.com/Tuesdayzz/p/5758764.html
Codeforces 629D Babaei and Birthday Cake(树状数组优化dp)相关推荐
- E. Pencils and Boxes (树状数组优化dp)
传送门 1.题意 给出n个数,要求给这些数分组,每组不少于k个. 每组的数之间的差不能大于d.是否能够分组? 2.dp分析 先排序. f[i]f[i]f[i]表示[1~i]能够分组成功. 答案就是f[ ...
- codeforces 261D Maxim and Increasing Subsequence(树状数组优化最长上升子列)
题目链接:http://codeforces.com/problemset/problem/261/D 题意:最长上升子列. 思路:树状数组优化求最长上升子列. #include <iostre ...
- [SCOI2014]方伯伯的玉米田 //二维树状数组优化DP
题目: 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美.这排玉米一共有N株,它们的高度参差不齐.方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩 ...
- bzoj 1264: [AHOI2006]基因匹配Match (树状数组优化dp)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1264 思路: n大小为20000*5,而一般的dp求最长公共子序列复杂度是 n*n的,所以我 ...
- hdu 4991(树状数组优化dp)
Ordered Subsequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 5542(树状数组优化dp)
题意: 求n个数中长度为m的上升子序列的个数 解题思路:dp[i][j]表示第i个数长度为j的上升序列的个数.dp[i][j] = sum{dp[k][j-1] | a[k] < a[i]},这 ...
- CF1621G Weighted Increasing Subsequences(离散化+树状数组优化dp+栈维护后缀最大值+计数)
problem luogu-link solution 显然单独考虑每个 iii 的贡献,即被多少个合法上升子序列包含. 令 x=max{j∣j>i∧aj>ai}x=\max\{j\ | ...
- 【HDU - 6447】YJJ's Salesman(降维dp,树状数组优化dp)
题干: YJJ is a salesman who has traveled through western country. YJJ is always on journey. Either is ...
- acwing 297. 赤壁之战 树状数组优化DP 寒假集训
题目链接 想要求长度为M的子序列,我们可以拿DP方程来计算,并且这个DP也是比较好看出来的DP[i][j]代表着i后j位置中的所有长度为j的子序列,递推方程为 for(int i=1;i<=n; ...
最新文章
- 人体姿态估计(Human Pose Estimation)技巧方法汇总
- 如何优雅的使用Mock Server
- 两个整形变量,不用中间变量进行替换!
- 使用VirtualEnvWrapper隔离python项目的库依赖
- 使用Spring数据和Thymeleaf实现Bootstrap分页
- jdk1.8对synchronized锁的优化
- json里面的list数据取不出来_sql盲注的困局:利用DNSlog快速导出数据
- Linux关闭开启防火墙命令
- STM32实现水下四旋翼(三)通信任务——遥控器SBUS通信
- PCB Layout的10个细节
- 我国5G现状:今年底或发放5G牌照
- 改了后台登陆地址后无法上传图片_如何找到路由器后台管理账号及密码 找回路由器后台管理账号及密码方法【介绍】...
- 单片机学习笔记5--STM32时钟系统(基于百问网STM32F103系列教程)
- 航悦达 HYD-3000 打印机驱动
- 终于去看了麦兜响当当
- noip题库 —— 4.7反质数
- 小学期 异形:达达学长的生死逃亡
- 云栖科技评论第70期:数字时代需要双螺旋
- Java研发小试(面试题)
- 2016年7月编程语言排行榜