、、这个题结论还是比较好猜的、

就是把土地按长为第一关键字,宽为第二关键字,这样就可以省去许多包含的土地

剩下的就是长度递增、宽递减的土地:

剩下的就是斜率优化了,但wa了好几遍,,这是因为:

1、数学不好,长宽单调性看成相同的了

2、没开long long

3、斜率精度误差

4、<=和>=反了、

所以:

1、除法比较时一定要注意是不是有误差

2、准确理解斜率优化的意义

3、尝试找规律和归类法分析问题、

码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
ll n,i,cnt,x[100005],y[100005],f[100005];
struct la
{ll c,k;
}a[100005],b[100005];
bool cmp(la a,la b)
{if(a.c!=b.c)return a.c<b.c;return a.k<b.k;
}
int main()
{scanf("%lld",&n);for(i=1;i<=n;i++){scanf("%lld%lld",&a[i].c,&a[i].k);           }   sort(a+1,a+1+n,cmp);for(i=n;i>=1;i--){if(a[i].k>b[cnt].k)b[++cnt]=a[i];}for(i=1;i<=cnt;i++)a[i]=b[i];n=cnt;int z1=1,z2=1;x[1]=a[1].c;y[1]=0; for(i=1;i<=n;i++){while(z1<z2&&double(y[z1]-y[z1+1])/double(x[z1]-x[z1+1])>=-a[i].k)++z1;ll lx,ly;ly=y[z1]+x[z1]*a[i].k;f[i]=ly;lx=a[i+1].c;while(z2-z1>=1&&double(y[z2]-ly)/double(x[z2]-lx)>=double(y[z2-1]-ly)/double(x[z2-1]-lx))--z2;       ++z2;y[z2]=ly;x[z2]=lx;     }printf("%lld",f[n]);
}

2017.9.10 土地购买 思考记录相关推荐

  1. 2017.9.10 连续攻击游戏 思考记录

    这个题..可以把它当成结论题搞, 结论就是对于每个数字的出现次数,如果区间1~n内的出现次数都>=2,那么这个区间1~n内都会合法 这个结论很好证明,连到外面可以视为停止   外面连进来的可以视 ...

  2. 2017.9.10 序列操作 思考记录

    唉,怎么说呢.pushdown要注意的事全忘光了.写+调竟然花了两个小时. 要注意反转时是^1而不是=1! 下传标记不要单纯管顺序,因为没有任何意义,要确保在任意时刻一个点只有一种同级标记!!比如赋值 ...

  3. 2017.8.10 奖励关 思考记录

    %%ISA   的 期望算法. 首先期望不是单独的一个东西,他后面必须加上一个东西(如期望步数.期望分数.期望个数) 那么期望XX  就是进行无穷次   出现的各个XX趋向于的一个值,,所以也叫平均X ...

  4. 2017.3.24 分裂游戏 思考记录

    事先说明:这不是好题解,这只是思考记录 同机房的xp都学博弈了..    感觉还是学学看吧 先来看一下简单的nim: 题目: Alice和Bob放置了N堆不同的石子,编号1..N,第i堆中有A[i]个 ...

  5. 2017.10.28 排序 思考记录

    这个题有一种套路,就是大小关系转化成01串,这样就变成了二分检验问题,, 就是把排序变成区间修改,然后单点查询.. 把所有比他小的赋成0,比他大的赋成1 然后判断要求位是0还是1来判断答案与当前值的大 ...

  6. 2017.10.28 压缩 思考记录

    这个题首先要知道M和R不是栈的搭配,是贪心的搭配,,就是向左找到第一个M.. 如 abababab cdcdcdcd abababab cdcdcdcd   = abRRcdcdcdcdR != Ma ...

  7. 2017.10.10 杀人游戏 思考记录

    这个题题目描述还是有一点问题..这里的知道关系是有传递性的.第一次理解成只会明白直接相连的,最小点覆盖  --   这样就成np了吧.. 所以就比较显然了,,对于每组能互达的强连通分量,都只需一个头上 ...

  8. 2017.10.6 单词 思考记录

    少有的会做的ac自动机题 .这个题是匹配模式串. 所以就不需要匹配的过程,只需要建出fail树,然后直接拓扑 由于每次加进去一个单词,这个单词的每一个字母都有可能作为最后一个字母影响他的失配,所以词路 ...

  9. 2017.10.5 高速公路 思考记录

    ..一开始死活不知道样例8/3是怎么算出来的.. 后来才发现右端点要-1.. 这个题说是期望,但因为每个点的概率相同,所以直接求和然后除就可以了 维护每个区间的答案,听说直接维护答案很难写,,感觉还可 ...

最新文章

  1. 动态数组怎么定义_Excel VBA 数组基础知识,初学者不可不学的关键知识
  2. centos6系统优化脚本
  3. mui + vue 模板
  4. JMetro版本11.5.11和8.5.11发布
  5. java 访问手机存储卡,android实现文件下载并存储进SD卡
  6. 小白打基础一定要吃透的11类 Python 内置函数
  7. UTF8,Unicode 的区别(zt)
  8. CSS学习笔记 -- Position(定位)
  9. 电脑打开热点后无法连接到网络
  10. CMOS门基本工作原理
  11. 计算机 蚂蚁搬家 教案,大班科学活动教案:小蚂蚁搬家教案(附教学反思)
  12. 家庭宽带之IPv6网络测试
  13. android ExtCertPathValidatorException: Could not validate
  14. 集群环境下,谁偷走quartz配置的定时任务
  15. Android Telephony 9.0通话挂断连接处理机制(opt/Telephony)
  16. 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
  17. html5版微博能收到私信吗,微博私信功能说明
  18. 八、OCR系列-OCR表格识别-PP-Structure
  19. ffmpeg 生成静音测试音频
  20. android监听来电去电广播

热门文章

  1. 如何使用pandas正确读取带有中文的cvs文件
  2. 如何在有道云笔记的Markdown上上传本地图片(亲测好用,而且不用开会员)
  3. PHP操作常见的错误
  4. python可以体现数学中映射概念的是_【课时27+集合+在我的世界里+你就是唯一】 - #1...
  5. html打开网页过场动画_轻松教你学会网页设计
  6. 汇编语言ax=0c58ch,第4章89C5汇编语言程序设计.ppt
  7. notes java api_如何使用Java来调用Notes API发送邮件(包括附件)
  8. oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况
  9. python编写爬虫代码_python编写简单爬虫资料汇总
  10. python分类器鸢尾花怎么写_python机器学习基础教程:鸢尾花分类