斜率优化。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 50050
#define inf 0x7f7f7f7f7f7f7f7fLL
using namespace std;
long long n,s[maxn],top=,f[maxn],g[maxn],a[maxn],b[maxn],l,r,q[maxn];
struct pnt
{
long long x,y;
}p[maxn];
bool cmp(pnt x,pnt y)
{
if (x.x!=y.x) return x.x<y.x;
return x.y<y.y;
}
double k(long long x,long long y)
{
if (b[x]==b[y]) return inf;
return (double)(g[x]-g[y])/(b[x]-b[y]);
}
int main()
{
scanf("%lld",&n);
for (long long i=;i<=n;i++) scanf("%lld%lld",&p[i].x,&p[i].y);
sort(p+,p+n+,cmp);
for (long long i=;i<=n;i++)
{
while ((p[i].y>=p[s[top]].y) && (top)) top--;
s[++top]=i;
}
for (long long i=;i<=top;i++) a[i]=p[s[i]].x,b[i]=p[s[i]].y;
f[]=a[]*b[];l=r=;q[l]=;
for (long long i=;i<=top;i++)
{
g[i]=f[i-];
while ((r-l>) && (k(q[r-],q[r])<k(q[r],i))) r--;
q[++r]=i;
while ((r-l>) && (k(q[l],q[l+])>=-a[i])) l++;
f[i]=g[q[l]]+a[i]*b[q[l]];
}
printf("%lld\n",f[top]);
return ;
}

BZOJ 1597 土地购买的更多相关文章

  1. BZOJ 1597 土地购买(斜率优化DP)

    如果有一块土地的长和宽都小于另一块土地的长和宽,显然这块土地属于“赠送土地”. 我们可以排序一下将这些赠送土地全部忽略掉,一定不会影响到答案. 那么剩下的土地就是长递减,宽递增的.令dp[i]表示购买 ...

  2. 【BZOJ 1597】 [Usaco2008 Mar]土地购买 (斜率优化)

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3601  Solved: 1322 Descrip ...

  3. BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4026  Solved: 1473[Submit] ...

  4. BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )

    既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减 dp(v) = min{ dp(p)+xv*yp+1 } 假设dp(v)由i ...

  5. BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4989  Solved: 1847[Submit] ...

  6. BZOJ 1597: [Usaco2008 Mar]土地购买 斜率优化

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MB Description 农夫John准备扩大他的农场,他正在考虑N ...

  7. 斜率优化专题1——bzoj 1597 [Usaco2008 Mar] 土地购买 题解

    转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24387147 [原题] 1597: [Usaco2008 Mar]土地购买 Time ...

  8. 【BZOJ】【1597】【USACO 2008 Mar】土地购买

    DP/斜率优化 Orz Hzwer…… 想到排序了,但没想到其实可以将序列转化为x递增且y递减的序列……因为x是递增的,若y[i]>y[i-1]那么第i-1个就足够小……以至于可以在搞定第 i ...

  9. 1597: [Usaco2008 Mar]土地购买

    1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4023  Solved: 1470[Submit] ...

随机推荐

  1. 商业信息管理系统 Bizagi 建模pattern

    WCP 1- Sequence This pattern is used to model dependencies between tasks so that one task cannot sta ...

  2. less中的减号处理

    很奇怪,less中对减号似乎没有特别说明,很容易让人无用. @div1Width:500; @div2Width:200px; .div3cls { width:@div1Width-@div2Wid ...

  3. SAP验证

    需求:财务录费用凭证,检查科目6601001-6601999 & 成本中心为1000R001 - 1000R999,工单不能为空 GGB0 1.选择财务凭证->行项目->新建确认' ...

  4. Java注解入门

    注解的分类   按运行机制分:   源码注解:只在源码中存在,编译后不存在 编译时注解:源码和编译后的class文件都存在(如@Override,@Deprecated,@SuppressWarnin ...

  5. C#WebForm内置对象

    内置对象: Response对象:响应请求Response.Write("<script>alert('添加成功!')</script>");Respons ...

  6. VGA, QVGA, HVGA, WVGA, FWVGA和iPhone显示分辨率

    首先这些都是说的屏幕显示分辨率 VGA (Video Graphics Array), 分辨率为 480*640. QVGA (Quarter VGA), 分辨率为240*320. HVGA (Hal ...

  7. [转]Bat脚本处理ftp超强案例解说

    Bat脚本处理ftp超强案例解说 转自:http://369369.blog.51cto.com/319630/842341   前言:   公司有几百台windows服务器,每次程序更新,如果是一台 ...

  8. 【Python②】python之首秀

       第一个python程序 再次说明:后面所有代码均为Python 3.3.2版本(运行环境:Windows7)编写. 安装配置好python后,我们先来写第一个python程序.打开IDLE (P ...

  9. JS Math.max() 函数

    Math.max(a,b,...,x,y) -- 返回数个数字中较大的值 max是maximum的缩写,中文"最大量"的意思 max函数语法Math.max(a,b,...,x,y ...

  10. Unity3d之个性化鼠标

    代码实例: using UnityEngine; using System.Collections; public class CursorController : MonoBehaviour { / ...