【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

把这n个土地按照x为第一关键字、y为第二关键字。都升序排。
然后考虑一个土地xi,yi
若有一个土地的x这个去掉土地的过程可以用单调队列实现。
这样。我们会发现剩下的土地按照从1开始的顺序。
就x是升序的,且y是降序的了。
接下来,会发现我们要买的土地,肯定都是连续一段地买的。
比如,你买了第一个土地,又买了第3个土地。
那么你肯定再把第二个土地买了更优。
因为花费只取决于第一个土地的y和第3个土地的x了(y递减,x递增);
你中间不论有多少土地。花费都是一样的。
因此,买的肯定都是一段一段的。
做个DP就好。
设f[i]表示i是最后一段的**最后一段**的**最小花费**
方程是
$f[i] = min(f[j]+x_i*y_{j+1})$
加一个斜率优化就好

【错的次数】

在这里输入错的次数

【反思】

在这里输入反思

【代码】

#include <bits/stdc++.h>
#define ll long long
using namespace std; const int N = 5e4; int n, dl[N + 10], h, t;
pair <ll, ll> b[N + 10],a[N+10];
ll f[N + 10]; double ju(int x, int y)
{
double fenzi = f[y] - f[x];
double fenmu = a[x + 1].second - a[y + 1].second;
return fenzi / fenmu;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%lld%lld", &b[i].first, &b[i].second);
sort(b + 1, b + 1 + n);
int nn = 0;
for (int i = 1; i <= n; i++)
{
while (nn > 0 && a[nn].second <= b[i].second) nn--;
a[++nn] = b[i];
} n = nn;
h = t = 1;
dl[1] = 0; for (int i = 1; i <= n; i++)
{
while (h < t && ju(dl[h], dl[h + 1]) < a[i].first) h++;
int j = dl[h];
f[i] = f[j] + a[i].first*a[j + 1].second;
while (h < t && ju(dl[t - 1], dl[t]) > ju(dl[t], i)) t--;
dl[++t] = i;
} printf("%lld\n", f[n]);
return 0;
}

【BZOJ 1597】 [Usaco2008 Mar]土地购买的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1597 题意: 有n块矩形土地,长为a[i],宽为b[i]. FJ想要将这n块土地全部买下来 ...

  7. bzoj 1597: [Usaco2008 Mar]土地购买

    Description 农 夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000 ...

  8. bzoj 1597 [Usaco2008 Mar]土地购买——斜率优化dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1597 又一道斜率优化dp.负数让我混乱.不过仔细想想还是好的. 还可以方便地把那个负号放到x ...

  9. bzoj 1597: [Usaco2008 Mar]土地购买【斜率优化】

    按xy降序排序,把能被完全包含的去掉 然后就得到了x升序y降序的一个数组 然后方程就显然了:f[i]=min(f[j]+y[j+1]x[i]) 斜率优化转移 说起来我还不会斜率优化呢是不是该学一下了 ...

  10. BZOJ 1597: [Usaco2008 Mar]土地购买 动态规划 + 斜率优化

    Code: #include<bits/stdc++.h> #define maxn 1000000 #define ll long long #define x(i) (b[i+1]) ...

随机推荐

  1. 一起talk C栗子吧(第三十四回:C语言实例--巧用溢出计算最值)

    各位看官们.大家好,上一回中咱们说的是巧用移位的样例,这一回咱们说的样例是:巧用溢出计算最值. 闲话休提,言归正转.让我们一起talk C栗子吧! 大家都知道,程序中的变量都有一个取值范围,这个范围也 ...

  2. 【Cocos2d-x 017】 多分辨率适配全然解析

    转:http://blog.csdn.net/w18767104183/article/details/22668739 文件夹从Cocos2d-x 2.0.4開始,Cocos2d-x提出了自己的多分 ...

  3. Flex 正則表達式 电话、邮箱验证

     一.经常使用验证 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9 ...

  4. 淘宝的css初始化代码

    ;; } body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; } h1, h2, h3, h ...

  5. C# json 总结

    json格式字符串转换为实体类,大括号 {} 表示对象,[] 数组表示列表. json文件读取到内存中就是字符串,.NET操作json就是生成与解析json字符串. 添加引用:using Newton ...

  6. BZOJ3530: [Sdoi2014]数数(Trie图,数位Dp)

    Description 我们称一个正整数N是幸运数,当且仅当它的十进制表示中不包含数字串集合S中任意一个元素作为其子串.例如当S=(22,333,0233)时,233是幸运数,2333.20233.3 ...

  7. Linux中iptables学习

    防火墙:是一种位于内部网络与外部网络之间安全的防护系统,依照特定的规则,允许或是限制传输的数据通过.iptables通常被用作类UNIX系统中的防火墙,更准确的说,可以称为iptables/netfi ...

  8. 使用C#对XML进行增删改查操作

    xml文件格式 <?xml version="1.0" encoding="utf-8"?> <messageList> <mes ...

  9. 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II

    洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II https://www.luogu.org/problemnew/show/P2616 题目描述 Farmer ...

  10. bitmap-setBounds方法参数研究

    对于如下的代码,一直有点不明白它具体每一步操作的影响.今天就稍微研究下.代码如下 xml代码 <RelativeLayout xmlns:android="http://schemas ...