博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016 CCPC 合肥赛区 平行四边形//打铁记录..... 背锅还是我在行 此处@ctr 233
阅读量:5072 次
发布时间:2019-06-12

本文共 1119 字,大约阅读时间需要 3 分钟。

也希望自己记住这些题并不是真的很难很难...

平行四边形...

这个题要两个直线上的两个点和给出点中的两个点组成的平行四边形面积最大。

确定两个点后,发现线上的点随之确定。那么我们解出线上的点 然后求面积表达式,化简....

这个过程算得好辛苦.....

发现S =( a*c(x1^2-x2^2) +b*d(y1^2-y^2)+(a*d+b*c)*(x1*y1-x2*y2) )/(ad-bc)

.................................................然后O(n)扫描点即可....................

这真的是ACM的题么............................感觉回到了初中...............................

#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N = 1e5;void UMAX(ll& x,ll y){ if(x
y) x=y;}; ll a,b,c,d;ll p,q,o;ll calc(ll x,ll y){ return p*x*x+q*y*y+o*x*y;}int main(){ while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d)==4){ p = a*c; q = b*d; o = a*d+b*c; ll mx = LONG_LONG_MIN,mn = LONG_LONG_MAX; int n; scanf("%d",&n); while(n--) { ll x,y; scanf("%I64d%I64d",&x,&y); ll val = calc(x,y); UMAX(mx,val); UMIN(mn,val); } printf("%.f\n",fabs((mx-mn)*double(1)/(a*d-b*c))); } return 0;}
计算几何

 

转载于:https://www.cnblogs.com/Geek-xiyang/p/6201191.html

你可能感兴趣的文章
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
蓝桥杯-分小组-java
查看>>
Android Toast
查看>>
iOS开发UI篇—Quartz2D使用(绘制基本图形)
查看>>
docker固定IP地址重启不变
查看>>
桌面图标修复||桌面图标不正常
查看>>
JavaScript基础(四)关于对象及JSON
查看>>
JAVA面试常见问题之Redis篇
查看>>
jdk1.8 api 下载
查看>>
getElement的几中属性介绍
查看>>
HTML列表,表格与媒体元素
查看>>
雨林木风 GHOST_XP SP3 快速装机版YN12.08
查看>>
数据结构3——浅谈zkw线段树
查看>>
Introduction to my galaxy engine 2: Depth of field
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>