题目传送门

一道斜率优化的题目。

但暴力方程很关键。

我们先将x作为关键字Sort一遍,再将y处理成单调递减,即把无用的土地去除。

f[i]=f[j]+a[i]*b[j+]
-a[i]*b[j+]+f[i]=f[j]
k x + b = y

然后单调队列维护凸包做斜率优化就好了。

code:

/**************************************************************
Problem: 1597
User: yekehe
Language: C++
Result: Accepted
Time:104 ms
Memory:3268 kb
****************************************************************/ #include <cstdio>
#include <algorithm>
using namespace std; char tc()
{
static char tr[],*A=tr,*B=tr;
return A==B&&(B=(A=tr)+fread(tr,,,stdin),A==B)?EOF:*A++;
} int read()
{
char c;while(c=tc(),c<''||c>'');
int x=c-'';while(c=tc(),c>=''&&c<='')x=x*+c-'';
return x;
} int N,tot;
struct node{long long x,y;}a[],c[];
inline int cmp(node x,node y){return x.x<y.x;} long long l[],h,t,f[]; double X(int x){return c[x+].y;}
double Y(int y){return f[y];}
double get(int x,int y){return (Y(y)-Y(x))/(X(y)-X(x));} int main()
{
N=read();
register int i;
for(i=;i<=N;i++)a[i].x=read(),a[i].y=read();
sort(a+,a+N+,cmp);
for(i=;i<=N;i++){
while(tot&&a[i].y>=c[tot].y)tot--;
c[++tot]=a[i];
}
h=t=;
for(i=;i<=tot;i++){
while(h<t&&-c[i].x<get(l[h],l[h+]))h++;
int j=l[h];f[i]=f[j]+c[i].x*c[j+].y;
while(h<t&&get(l[t-],l[t])<get(l[t],i))t--;
l[++t]=i;
}
printf("%lld",f[tot]);
return ;
}

BZOJ1597_土地购买_KEY的更多相关文章

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

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

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

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

  3. 【BZOJ-1597】土地购买 DP + 斜率优化

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

  4. 【斜率DP】bzoj1597: [Usaco2008 Mar]土地购买

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

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

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

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

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

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

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

  8. bzoj1597[Usaco2008 Mar]土地购买 斜率优化dp

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

  9. 【bzoj1597】[Usaco2008 Mar]土地购买

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

随机推荐

  1. 在 Deepin 中搭建 GitLab

    入职半个月了,一直在接受业务知识以及企业文化知识的培训,下周终于要开始上岗入手项目了.由于公司使用自己搭建的 GitLab 服务作为项目版本控制器,所以我决定学习一下 GitLab,由于这货跟 Git ...

  2. Django实战(二)之模板语言

    该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html 模板语法,每个框架都有其支持的模板语法,Django的模板语 ...

  3. python文件操作指令

    原文地址:http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html 常用的文件操作指令: python中对文件.文件夹(文件操 ...

  4. windows下更新npm的命令实现

    Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force npm install -g npm-windows-upgrade npm-wi ...

  5. 将本地已经存在的非git项目提交到github上的空仓库

    一.本地项目执行操作 1.在本地项目目录下初始化git仓库 git init 2.将本地项目下工作区的所有文件添加到git版本库的暂存区中 git add . (可以创建.gitignore文件忽略不 ...

  6. 设置af对 Cookies 的管理

    manager.requestSerializer.HTTPShouldHandleCookies = NO;

  7. nRF5 SDK for Mesh(一) 介绍和下载源码

    一: 官网介绍地址:http://www.nordicsemi.com/Products/Bluetooth-low-energy/nRF5-SDK-for-Mesh Nordic offers a ...

  8. zookeeper启动时报错:Error contacting service. It is probably not running问题

    查看zookeeper.out发现启动日志报错未找到java路径. 启动日志位于zookeeper-4.0.10/bin目录下 修改/etc/profile中环境变量得以解决.

  9. java 企业门户网站 源码 自适应响应式 freemarker 静态引擎 html5 SSM

    官网 http://www.fhadmin.org/ 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的ht ...

  10. Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法

    对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...