BZOJ 1597: [Usaco2008 Mar]土地购买 动态规划 + 斜率优化
Code:
#include<bits/stdc++.h>
#define maxn 1000000
#define ll long long
#define x(i) (b[i+1])
#define y(i) (f[i])
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int A[maxn],arr[maxn],q[maxn],tot,head,tail;
ll a[maxn], b[maxn], f[maxn], u[maxn], v[maxn];
bool cmp(int i,int j)
{
return u[i]==u[j]?v[i]<v[j]:u[i]<u[j];
}
double slope(int i,int j)
{
return (double)(1.00*y(i)-y(j))/(double)(1.00*x(j)-x(i));
}
int main()
{
// setIO("input");
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;++i) scanf("%lld%lld",&u[i],&v[i]),A[i]=i;
sort(A+1,A+1+n,cmp);
for(i=1;i<=n;++i)
{
while(v[A[i]]>=b[tot]&&tot) --tot;
++tot, a[tot]=u[A[i]], b[tot]=v[A[i]];
}
n=tot,head=tail=0;
for(i=1;i<=n;++i)
{
while(head<tail&&slope(q[head],q[head+1])<a[i]) ++head;
f[i]=f[q[head]]+a[i]*b[q[head]+1];
while(head<tail&&slope(q[tail], i)<slope(q[tail-1],i)) --tail;
q[++tail]=i;
}
printf("%lld\n",f[n]);
return 0;
}
BZOJ 1597: [Usaco2008 Mar]土地购买 动态规划 + 斜率优化的更多相关文章
- BZOJ 1597: [Usaco2008 Mar]土地购买( dp + 斜率优化 )
既然每块都要买, 那么一块土地被另一块包含就可以不考虑. 先按长排序, 去掉不考虑的土地, 剩下的土地长x递增, 宽y递减 dp(v) = min{ dp(p)+xv*yp+1 } 假设dp(v)由i ...
- BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4989 Solved: 1847[Submit] ...
- BZOJ 1597 [Usaco2008 Mar]土地购买:斜率优化dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1597 题意: 有n块矩形土地,长为a[i],宽为b[i]. FJ想要将这n块土地全部买下来 ...
- bzoj 1597: [Usaco2008 Mar]土地购买【斜率优化】
按xy降序排序,把能被完全包含的去掉 然后就得到了x升序y降序的一个数组 然后方程就显然了:f[i]=min(f[j]+y[j+1]x[i]) 斜率优化转移 说起来我还不会斜率优化呢是不是该学一下了 ...
- 1597: [Usaco2008 Mar]土地购买 [ dp+斜率优化 ] 未完
传送门 1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1979 Solved: 705[Subm ...
- [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...
- 【BZOJ 1597】 [Usaco2008 Mar]土地购买 (斜率优化)
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3601 Solved: 1322 Descrip ...
- BZOJ 1597: [Usaco2008 Mar]土地购买 [斜率优化DP]
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4026 Solved: 1473[Submit] ...
- 斜率优化专题1——bzoj 1597 [Usaco2008 Mar] 土地购买 题解
转载请注明:http://blog.csdn.net/jiangshibiao/article/details/24387147 [原题] 1597: [Usaco2008 Mar]土地购买 Time ...
随机推荐
- 搭建spring项目,无法创建RequestMappingHandlerMapping异常
异常详情: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMa ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_6_字节输出流写多个字节的方法
一次写多个字节的方法 要在txt内显示100.49代表1 48 代表0 一次写多个字节 负数前两个组成一个中文.-65和-66 字节数组的一部分 写入字符串方法 当前用的编码格式是utf-8,utf- ...
- Python uuid库中 几个uuid的区别
在用到uuid库的时候,发现uuid有很多个,比较好奇,就查了一下他们的区别 uuid1()——基于时间戳 uuid2()——基于分布式计算环境DCE(Python中没有这个函数) uuid3()—— ...
- 前端借助接口获取ip地址
<script language="javascript" src="http://www.codefans.net/ajaxjs/jquery1.3.2.js&q ...
- Nginx基本属性配置
Nginx基本属性配置 1.找到安装目录下conf 文件下的nginx.conf文件 通过 Notepad++打开进行 属性配置 image ==> image 2.worker_pro ...
- git_01_上传第一个项目至git
前言 Git是一个开源的分布式版本控制系统,可以有效.高速地处理从小到大的项目版本管理.最近在自己研究自动测试,也准备放到git上管理.由于工作中是在已有的代码库拉取.提交代码.自己想要初次建库上传项 ...
- 应用安全-web安全-WebShell整理
shellcode.aspx <%@ Page Language="C#" AutoEventWireup="true" Inherits="S ...
- Nginx https服务器证书安装步骤
本文档指导您如何在 Nginx 服务器中安装 SSL 证书. 说明: 本文档以证书名称 www.domain.com 为例. Nginx 版本以 nginx/1.16.0 为例. 当前服务器的操作系统 ...
- 使用gitlab的webhook进行前端自动部署
gitlab有个功能叫webhook,比较适合前端代码的自动部署.其中的逻辑在 http://172.30.83.152:30080/help/user/project/integrations/w ...
- sql下的xml配置文件中特殊使用的sql语句编写
1.使用服用的sql语句------------查询学生表所有字段 <sql id="selectAllStuAll"> select stu.id,stu.name, ...