hdu 5964:平行四边形 【计算几何】
打重现赛时,一点思路也没有,然后又看到这题AC数那么少,就直接放弃了。今天重新看了看,借鉴了下别人的,发现此题应该算是一道可解题。
看上去,这题的ans是同时有两个点作为自变量的函数(然而n^2复杂度显然不对,这也应该早点想到)。其实,这道题可以先直接假设S中的两个点的坐标分别为B(x1,y1),B'(x2,y2),然后,利用高中学到的解析几何的知识,得到中点坐标的表达式,再结合两条直线的方程,得到A,A'的坐标表达式,有平行四边形四个顶点的坐标,面积也就可以求得了。以上过程全部在纸上完成。最后可以发现,B和B'的坐标完全是分开的2333,不会产生某种“莫名的耦合”来一起影响ans,具体的公式可以见代码。
所以,以后看到这样的题,不管结果怎样,先动手算一下,有时在草稿纸上暴力笔算就能得到公式了。
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5964
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL a1,a2,b1,b2;
LL fun(LL x,LL y)
{
return a1*a2*x*x+b1*b2*y*y+(a1*b2+a2*b1)*x*y;
}
int main()
{
while(~scanf("%lld%lld%lld%lld",&a1,&b1,&a2,&b2))
{
LL n;
LL s1=-(<<),s2=<<;
scanf("%lld",&n);
while(n--)
{
LL x,y;
scanf("%lld%lld",&x,&y);
LL s=fun(x,y);
s1=max(s1,s);
s2=min(s2,s);
}
printf("%.0lf\n",fabs((double)(s1-s2)/(double)(a1*b2-b1*a2)));
}
}
hdu 5964:平行四边形 【计算几何】的更多相关文章
- HDU 5964 平行四边形
假设直线L和L'相交于原点O.假设S ={s1,s2,...,sn}是平面上的n个点.你打 算找四个点满足如下条件:1. A ∈ L 而 A' ∈ L'.2. B,B'都属于S;即 B∈S 且 ...
- HDU 4998 Rotate (计算几何)
HDU 4998 Rotate (计算几何) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4998 Description Noting is more ...
- hdu 4643 GSM 计算几何 - 点线关系
/* hdu 4643 GSM 计算几何 - 点线关系 N个城市,任意两个城市之间都有沿他们之间直线的铁路 M个基站 问从城市A到城市B需要切换几次基站 当从基站a切换到基站b时,切换的地点就是ab的 ...
- HDU 1174 爆头(计算几何)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1174 解题报告:就是用到了三维向量的点积来求点到直线的距离,向量(x1,y1,z1)与(x2,y2,z ...
- hdu 1086(计算几何入门题——计算线段交点个数)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1086 You can Solve a Geometry Problem too Time Limit: 2 ...
- hdu 4613 Points<计算几何>
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4613 题意: 判断一个集合中的点能不能由另一个集合中的点,通过平移,旋转,放缩得到~ 思路:先求出集合中的 ...
- HDU 5295 Unstable 计算几何
Unstable 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5295 Description Rasen had lost in labyrint ...
- 2017多校第6场 HDU 6097 Mindis 计算几何,圆的反演
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6097 题意:有一个圆心在原点的圆,给定圆的半径,给定P.Q两点坐标(PO=QO,P.Q不在圆外),取圆 ...
- hdu 4643(计算几何)
题意:容易理解 分析:切换的地点为两个基站所在直线的中垂线与两座城市所在直线的交点. 代码实现: #include <cstdio> #include <cmath> #inc ...
随机推荐
- html简单标签代码
html简单标签代码demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- ThreadPoolExecutor实现异步多线程
import time from concurrent.futures import ThreadPoolExecutor executor = ThreadPoolExecutor(max_work ...
- 麦子lavarel---16、日志
麦子lavarel---16.日志 一.总结 一句话总结: 一定要养成打印日志查看日志的好习惯,非常节约时间和便于查错 1.console.Log(“获取类别数据:"):console.Lo ...
- 原来在UNITY中使用system.io下的所有函数都可以用相对路径 : Assets/xx
代码如下图,这样就不用在绝对路径和相对路径之间不断转换了. 想要得到绝对路径时就傅 Application.dataPath + xxx using System.Collections; usin ...
- :nth-child 与 ;nth-of-child
//:nth-child:是选择父元素下的第几个元素,不分标签类别,计数从1开始 //:nth-of-type:是选择父元素下的同类型元素的第几个元素.区分标签类别,计数从1开始
- CEF3 命令行 CefCommandLine 所有选项 与 开发中使用的测试网址
转自: https://blog.csdn.net/xiezhongyuan07/article/details/86640413 1.cef3 commandLine设置 在cef3开发过程中,在O ...
- JS对象—字符串总结(创建、属性、方法)
1.创建字符串 1.1 new String(s) String和new一起使用,创建的是一个字符串对象,存放的是字符串s的表示. 1.2 String(s) ...
- [LeetCode] 477. Total Hamming Distance(位操作)
传送门 Description The Hamming distance between two integers is the number of positions at which the co ...
- Js类的静态方法与实例方法区分以及jQuery如何拓展两种方法
上学时C#老师讲到对象有两类方法,静态方法(Static)和实例方法(非Static),当时不理解静态是为何意,只是强记. 后来从事前端工作,一直在对类(即对象,Js中严格来说没有类的定义,虽众所周知 ...
- vue手写轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...