【bzoj_1069】[SCOI2007]最大土地面积
2015-06-13 18:43
281 查看
首先吐槽bzoj不厚道,不能看部分分。。然后因为精度问题蛋疼了一下午
类似旋转卡壳的做法
先求凸包
枚举所有点i作为这个四边形的一个顶点。
然后按照逆时针顺序枚举每个点j,使得点i,j作为矩形的对角线
然后可以发现,这样的话直线i,j的斜率是先单调增后单调减的。然后我们平移这个对角线,类似找对重点对的做法(错别字QAQ
然后我们发现对重点也是递增的。。然后维护一个当前指针就爽了
几个关键的地方:
1.计算对重点是不是往前走的时候要注意,如果面积大于或相等都要向前走。要是相等不走的话可能一直卡在某个位置。
2.注意因为求出来的凸包是一个环形的,所以注意取余。。当然开始的时候直接复制一遍也可以哦
3.卡精度!eps设置成10-9就能过了。。。好坑
算法的正确性显然?因为旋转卡壳求对重点对的时候跟这个做法一模一样
类似旋转卡壳的做法
先求凸包
枚举所有点i作为这个四边形的一个顶点。
然后按照逆时针顺序枚举每个点j,使得点i,j作为矩形的对角线
然后可以发现,这样的话直线i,j的斜率是先单调增后单调减的。然后我们平移这个对角线,类似找对重点对的做法(错别字QAQ
然后我们发现对重点也是递增的。。然后维护一个当前指针就爽了
几个关键的地方:
1.计算对重点是不是往前走的时候要注意,如果面积大于或相等都要向前走。要是相等不走的话可能一直卡在某个位置。
2.注意因为求出来的凸包是一个环形的,所以注意取余。。当然开始的时候直接复制一遍也可以哦
3.卡精度!eps设置成10-9就能过了。。。好坑
算法的正确性显然?因为旋转卡壳求对重点对的时候跟这个做法一模一样
相关文章推荐
- JDBC的使用
- poj 1026 Cipher 【置换群】 【求一个字符串经过 k 次置换后 的新字符串】
- 【iOS开发-网络】解析json数据
- [Android Memory] Android内存管理、监测剖析
- Red Hat安装虚拟带库
- 人类本来就是在无奈中前进的
- GIT
- [Android Memory] Android性能测试小工具Emmagee
- 自定义异常
- 16.6 从客户端访问
- java单例模式详解
- Spark源码解读-JOB的提交与执行
- Lua获取系统时间和时间格式化方法
- 推荐十个最新免费的 jQuery 表格插件
- java虚拟机
- [Android Pro] 通过Android trace文件分析死锁ANR
- 绘制指定半径的圆
- 枚举的使用
- Hadoop---Hadoop中的各种排序
- linux 中前后台问题