bzoj1597
首先不难想到排序,这种无规律的东西一般都要转化为有规律才好做
首先以x为第一关键字,y为第二关键字升序排序
拍完序我们发现,若存在两块土地i,j
x[i]<=x[j],y[i]<=y[j],那么土地i的购买一定可以忽略(因为价格是由x,y的乘积决定的)
剔除掉不需考虑的土地,不难发现剩下的土地x是升序而y是降序的
然后就可以dp了
f[i]=min(f[k]+x[i]*y[k+1]); (0<=k<=i-1)
显然这个是很容易用斜率优化的,不多说了
var q,st:array[..] of longint;
x,y,f:array[..] of int64;
w,n,t,h,r,i:longint; procedure swap(var a,b:int64);
var c:longint;
begin
c:=a;
a:=b;
b:=c;
end; procedure sort(l,r: longint);
var i,j: longint;
p,q:int64;
begin
i:=l;
j:=r;
p:=x[(l+r) shr ];
q:=y[(l+r) shr ];
repeat
while (x[i]<p) or (x[i]=p) and (y[i]<q) do inc(i);
while (p<x[j]) or (p=x[j]) and (q<y[j]) do dec(j);
if not(i>j) then
begin
swap(x[i],x[j]);
swap(y[i],y[j]);
inc(i);
j:=j-;
end;
until i>j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end; function check(l,r:longint):double;
begin
check:=(f[l]-f[r])/(y[st[r+]]-y[st[l+]]);
end; begin
readln(n);
for i:= to n do
readln(x[i],y[i]);
sort(,n);
t:=;
st[]:=;
for i:= to n do
begin
while (t>) and (x[i]>=x[st[t]]) and (y[i]>=y[st[t]]) do dec(t);
inc(t);
st[t]:=i;
end;
f[]:=;
r:=;
h:=;
for i:= to t do
begin
while (h<r) and (check(q[h+],q[h])<=x[st[i]]) do inc(h);
w:=q[h];
f[i]:=f[w]+y[st[w+]]*x[st[i]];
while (h<r) and (check(i,q[r])<check(q[r],q[r-])) do dec(r);
inc(r);
q[r]:=i;
end;
writeln(f[t]);
end.
bzoj1597的更多相关文章
- 【bzoj1597】 土地购买
http://www.lydsy.com/JudgeOnline/problem.php?id=1597 (题目链接) 题意 购买n个矩形,每块土地的价格是它的面积,但可以同时购买多快土地. 这些土地 ...
- [BZOJ1597]土地购买
Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...
- 【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
bzoj1597懒得复制,戳我戳我 Solution: 线性DP打牌\(+\)斜率优化 定义状态:\(dp[i]\)到了位置\(i\)最少花费 首先我们要发现,如果有一个小方块能被其他的大方块包围,其 ...
- BZOJ1597土地购买 【斜率优化DP】
BZOJ1597土地购买 [斜率优化DP] Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足( ...
- [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...
- Bzoj1597 [Usaco2008 Mar]土地购买
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4005 Solved: 1460 Description 农夫John准备扩大他的农场,他正在考虑N ...
- 【BZOJ-1597】土地购买 DP + 斜率优化
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2931 Solved: 1091[Submit] ...
- 【斜率DP】bzoj1597: [Usaco2008 Mar]土地购买
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2474 Solved: 900[Submit][ ...
- bzoj1597[Usaco2008 Mar]土地购买 斜率优化dp
1597: [Usaco2008 Mar]土地购买 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5524 Solved: 2074[Submit] ...
随机推荐
- ref与out之间的区别整理
ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递. 对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别. 总结起来,他们有如下语法区别: 1.re ...
- HTML解析引擎:Jumony 开源项目
Jumony Core首先提供了一个近乎完美的HTML解析引擎,其解析结果无限逼近浏览器的解析结果.不论是无结束标签的元素,可选结束标签的元素,或是标记属性,或是CSS选择器和样式,一切合法的,不合法 ...
- redis基本数据类型【1】-String类型
1.赋值与取值 set key value get key 2.设置自增 #自增1 incr num #指定增长跨度 incrby num 10 设置自减 #自增1 decr num #指定增长跨度 ...
- windows下使用xampp一键安装apache+php运行环境
感谢浏览,欢迎交流=.= 想为我老爸开发一套库存管理系统,借此机会打算使用下ext+php+apache+linux环境尝尝鲜. 为了在windows搭建本地开发测试环境,官网下载xampp,一键安装 ...
- 禁止 apache 开机启动
sudo update-rc.d apache2 disable http://askubuntu.com/questions/19320/what-is-the-recommended-way-to ...
- uploadify 上传文件出现HTTP 404错误
今天在使用jquery.uploadify.js上传文件的时候,出现HTTP 404错误,此错误在上传较小文件时不会出现,在上传一个50M左右文件时出现此错误,经过测试和日志查看发现,根本没有进入后台 ...
- C#基础(一)——C#中反斜杠/n与/r的区别
最近在公司实习的过程中,遇到了字符串换行的问题,百度了一下,发现字符串换行的问题还挺多,总结一下最基本的点,以防忘记. \n—>换行符(New Line),作用为换行符后面的字符串显示到“下一行 ...
- NetSerialComm的基本使用方法
近期搞一个com口传输的小项目,原来认为是一个挺简单的一个小功能,结果生产商发来com以后直接傻眼了,还要对相关的硬件流进行处理 如下 // 硬件流控制设置 dcb.fOutxCtsFlow = FA ...
- 快速理解webStroage
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 禁止选择文本和禁用右键 v1.0
var zhonghao={ //绑定事件 myAddEvent: function(obj, sEvent, fn){if(obj.attachEvent){obj.attachEvent('on' ...