【斜率优化dp】bzoj 1597 土地购买
来源:互联网 发布:linux检索文件内容 编辑:程序博客网 时间:2024/05/16 02:01
最近学习斜率优化!然而其实并不明白斜率是如何操作的……还好有小天使带我❤~而且斜率优化好像是有模板的样子,很多题都可以套用模板。
基本的dp方程:
dp[i]=min(dp[j]+land.x[i]*land.y[j+1]);
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct Node { double x, y;}land[50005], temp[50005];long long dp[50005];int queue[50005], n, head = 0, tail = 1, num = 0;bool cmp(const Node &a, const Node &b) { return a.x > b.x;}double getx(int k, int j) { return dp[k] - dp[j];}double gety(int k, int j) { return land[j + 1].x - land[k + 1].x;}int main() { scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%lf%lf", &temp[i].x, &temp[i].y); sort(temp + 1, temp + n + 1, cmp); land[1].y = -1.0; for(int i = 1; i <= n; i++) if(temp[i].y > land[num].y) { num++; land[num].x = temp[i].x; land[num].y = temp[i].y; } for(int i = 1; i <= num; i++) { while(head + 1 < tail && getx(queue[head + 1], queue[head]) <= land[i].y * gety(queue[head + 1], queue[head])) head++; dp[i] = dp[queue[head]] + land[i].y * land[queue[head] + 1].x; while(head + 1 < tail && getx(i, queue[tail - 1])*gety(queue[tail - 1], queue[tail - 2]) <= getx(queue[tail - 1], queue[tail - 2]) * gety(i, queue[tail - 1])) tail--; queue[tail++] = i; } printf("%lld\n", dp[num]); return 0;}
阅读全文
0 0
- 【斜率优化dp】bzoj 1597 土地购买
- BZOJ 1597 Usaco 2008 Mar 土地购买 斜率优化DP
- [BZOJ 1597][USACO 2008 Mar]土地购买(DP+斜率优化)
- [BZOJ 1597] Usaco2008 Mar 土地购买 · 斜率优化DP
- [BZOJ 1597][Usaco2008 Mar]土地购买:DP斜率优化
- bzoj 1597 土地购买(斜率优化dp)
- [斜率DP优化]BZOJ 1597: [Usaco2008 Mar]土地购买 题解
- BZOJ 1597 土地购买 斜率优化
- 土地购买 [DP斜率优化]
- 【BZOJ 3636】[Usaco2008 Mar]土地购买 斜率优化dp
- bzoj 1597: [Usaco2008 Mar]土地购买(斜率优化dp 例题)
- 【斜率DP】【bzoj 1597】: [Usaco2008 Mar]土地购买
- bzoj 1597: [Usaco2008 Mar]土地购买(斜率优化)
- BZOJ 1597:[Usaco2008 Mar]土地购买(斜率优化)
- BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化】
- BZOJ 1597 [Usaco2008 Mar]土地购买 动态规划+斜率优化
- 1597: [Usaco2008 Mar]土地购买 斜率优化dp
- 1597: [Usaco2008 Mar]土地购买 斜率优化dp
- poj 1276 多重背包 解题报告
- Oracle 关键字(保留字) 大全
- MongoCursorException ***not master and slaveOk=false
- 自定义jqGrid编辑页面并上传文件或者图片
- 偏差,方差,训练误差,测试误差的区别
- 【斜率优化dp】bzoj 1597 土地购买
- JAVA字符串处理工具类
- POJ 1087 网络流
- 0514 js对象
- 深入C#内存管理来分析值类型&引用类型,装箱&拆箱,堆栈几个概念组合之间的区别
- 数据库事务4种隔离级别
- python数据挖掘包SciPy Sparse
- C++实验六:数组合并
- 数据类型