2017.9.10 土地购买 思考记录
、、这个题结论还是比较好猜的、
就是把土地按长为第一关键字,宽为第二关键字,这样就可以省去许多包含的土地
剩下的就是长度递增、宽递减的土地:
剩下的就是斜率优化了,但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 土地购买 思考记录相关推荐
- 2017.9.10 连续攻击游戏 思考记录
这个题..可以把它当成结论题搞, 结论就是对于每个数字的出现次数,如果区间1~n内的出现次数都>=2,那么这个区间1~n内都会合法 这个结论很好证明,连到外面可以视为停止 外面连进来的可以视 ...
- 2017.9.10 序列操作 思考记录
唉,怎么说呢.pushdown要注意的事全忘光了.写+调竟然花了两个小时. 要注意反转时是^1而不是=1! 下传标记不要单纯管顺序,因为没有任何意义,要确保在任意时刻一个点只有一种同级标记!!比如赋值 ...
- 2017.8.10 奖励关 思考记录
%%ISA 的 期望算法. 首先期望不是单独的一个东西,他后面必须加上一个东西(如期望步数.期望分数.期望个数) 那么期望XX 就是进行无穷次 出现的各个XX趋向于的一个值,,所以也叫平均X ...
- 2017.3.24 分裂游戏 思考记录
事先说明:这不是好题解,这只是思考记录 同机房的xp都学博弈了.. 感觉还是学学看吧 先来看一下简单的nim: 题目: Alice和Bob放置了N堆不同的石子,编号1..N,第i堆中有A[i]个 ...
- 2017.10.28 排序 思考记录
这个题有一种套路,就是大小关系转化成01串,这样就变成了二分检验问题,, 就是把排序变成区间修改,然后单点查询.. 把所有比他小的赋成0,比他大的赋成1 然后判断要求位是0还是1来判断答案与当前值的大 ...
- 2017.10.28 压缩 思考记录
这个题首先要知道M和R不是栈的搭配,是贪心的搭配,,就是向左找到第一个M.. 如 abababab cdcdcdcd abababab cdcdcdcd = abRRcdcdcdcdR != Ma ...
- 2017.10.10 杀人游戏 思考记录
这个题题目描述还是有一点问题..这里的知道关系是有传递性的.第一次理解成只会明白直接相连的,最小点覆盖 -- 这样就成np了吧.. 所以就比较显然了,,对于每组能互达的强连通分量,都只需一个头上 ...
- 2017.10.6 单词 思考记录
少有的会做的ac自动机题 .这个题是匹配模式串. 所以就不需要匹配的过程,只需要建出fail树,然后直接拓扑 由于每次加进去一个单词,这个单词的每一个字母都有可能作为最后一个字母影响他的失配,所以词路 ...
- 2017.10.5 高速公路 思考记录
..一开始死活不知道样例8/3是怎么算出来的.. 后来才发现右端点要-1.. 这个题说是期望,但因为每个点的概率相同,所以直接求和然后除就可以了 维护每个区间的答案,听说直接维护答案很难写,,感觉还可 ...
最新文章
- 动态数组怎么定义_Excel VBA 数组基础知识,初学者不可不学的关键知识
- centos6系统优化脚本
- mui + vue 模板
- JMetro版本11.5.11和8.5.11发布
- java 访问手机存储卡,android实现文件下载并存储进SD卡
- 小白打基础一定要吃透的11类 Python 内置函数
- UTF8,Unicode 的区别(zt)
- CSS学习笔记 -- Position(定位)
- 电脑打开热点后无法连接到网络
- CMOS门基本工作原理
- 计算机 蚂蚁搬家 教案,大班科学活动教案:小蚂蚁搬家教案(附教学反思)
- 家庭宽带之IPv6网络测试
- android ExtCertPathValidatorException: Could not validate
- 集群环境下,谁偷走quartz配置的定时任务
- Android Telephony 9.0通话挂断连接处理机制(opt/Telephony)
- 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
- html5版微博能收到私信吗,微博私信功能说明
- 八、OCR系列-OCR表格识别-PP-Structure
- ffmpeg 生成静音测试音频
- android监听来电去电广播
热门文章
- 如何使用pandas正确读取带有中文的cvs文件
- 如何在有道云笔记的Markdown上上传本地图片(亲测好用,而且不用开会员)
- PHP操作常见的错误
- python可以体现数学中映射概念的是_【课时27+集合+在我的世界里+你就是唯一】 - #1...
- html打开网页过场动画_轻松教你学会网页设计
- 汇编语言ax=0c58ch,第4章89C5汇编语言程序设计.ppt
- notes java api_如何使用Java来调用Notes API发送邮件(包括附件)
- oracle sqlarea表结构,oracle v$sqlarea 分析SQL语句使用资源情况
- python编写爬虫代码_python编写简单爬虫资料汇总
- python分类器鸢尾花怎么写_python机器学习基础教程:鸢尾花分类