利用分式的性质可以很容易证明要求的是个三角形,这很简单。对于求三角形内的雷的个数,只需求出每条边上方有多少个雷,作一点运算即可。如

A,B,C(B是X轴坐标在中间的点),则AC(其上方的雷的个数)-AB-BC即可。

 #include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std; struct node{
int x,y;
};
node point[],mine[];
int cpoint[][]; void exchange(int &i,int &j){
int tmp=i;
i=j;
j=tmp;
} int count_point(int i,int j,int cm){
int cp=;
if(point[i].x>point[j].x)
exchange(i,j);
for(int k=;k<cm;k++){
if(mine[k].x>=point[i].x&&mine[k].x<point[j].x){\\必须是开区间,否则会有重复计算,对于中间的一点。。
if((point[i].x-mine[k].x)*(point[j].y-mine[k].y)-(point[j].x-mine[k].x)*(point[i].y-mine[k].y)>)
cp++;
}
}
return cp;
} int main(){
int T,n,m,kase=;
scanf("%d",&T);
while(T--){
double ans=1e15;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d%d",&point[i].x,&point[i].y);
}
for(int i=;i<m;i++){
scanf("%d%d",&mine[i].x,&mine[i].y);
}
memset(cpoint,,sizeof(cpoint));
for(int i=;i<n;i++){
for(int j=i+;j<n;j++)
cpoint[i][j]=count_point(i,j,m);
}
int i,j,k;
for(int ii=;ii<n;ii++){
for(int jj=ii+;jj<n;jj++){
for(int kk=jj+;kk<n;kk++){
i=ii; j=jj;k=kk;
if(point[i].x>=min(point[j].x,point[k].x)&&point[i].x<=max(point[j].x,point[k].x))
exchange(i,i);
else if(point[j].x>=min(point[i].x,point[k].x)&&point[j].x<=max(point[i].x,point[k].x))
exchange(i,j);
else if(point[k].x>=min(point[i].x,point[j].x)&&point[k].x<=max(point[i].x,point[j].x))
exchange(i,k);
double area=fabs(((point[j].x-point[i].x)*(point[k].y-point[i].y)-(point[k].x-point[i].x)*(point[j].y-point[i].y))/2.0);
double cp=abs((cpoint[i][j]+cpoint[j][i])+(cpoint[i][k]+cpoint[k][i])-(cpoint[j][k]+cpoint[k][j]));
ans=min(ans,area/cp);
}
}
}
printf("Case #%d: ",++kase);
if(ans==1e15)
printf("-1\n");
else printf("%.6lf\n",ans);
}
return ;
}

HDU 4353的更多相关文章

  1. hdu 4353 统计点在三角形内的个数

    Finding Mine Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  2. 数据结构:HDU 2993 MAX Average Problem

    MAX Average Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  3. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  5. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  6. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  7. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  8. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

  9. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

随机推荐

  1. 网页设计——Dreamweaver

    在看ASP.NET视频时,讲到了一款编写HTML代码的软件--Dreamweaver.它是一款专门进行网页设置的软件.通过它能够设计出多彩的界面,相对于vs中自带的设计方式来说,他不须要知道太多的技术 ...

  2. tflearn anaconda 安装过程记录

    准备工作:gcc升级为4.8.2glibc升级为2.18 /opt/xxx/xxx/components/ficlient/bigdata_env 里加入:export LD_LIBRARY_PATH ...

  3. 【SDOI 2008】 仪仗队

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2190 [算法] 同POJ3090 值得注意的是此题数据规模较大,建议使用用线性筛筛出 ...

  4. 使用Aliyun Docker 容器镜像/注册表服务

    1.前往阿里云容器镜像服务创建相关资源. 2.登录你的仓库,账户名+公共地址 docker login --username=xxxxxxxxx@aliyun.com registry.cn-hang ...

  5. guice基本使用,常用的绑定方式(四)

    guice在moudle中提供了良好的绑定方法. 它提供了普通的绑定,自定义注解绑定,按名称绑定等. 下面直接看代码: package com.ming.user.test; import com.g ...

  6. Docker 内部之间的网络连接

    一.简介 内部网络连接的2中方式: Docker NetWorking (1.9版本之后推荐使用这个)和 Docker link(1.9 版本之前都使用这个) 推荐使用docker networkin ...

  7. AJAX异步删除操作

    @Ajax.ActionLink("删除", "Delete", new {id = user.Id}, ajaxOption) @{ var ajaxOpti ...

  8. JavaScript函数传参

    函数传参一: <html> <head> <meta charset="utf-8"> <title>无标题文档</title ...

  9. 2019苏州凯美瑞德Java开发面试

    第四家Kmerit,苏州园区,出门晚了差点迟到,一点五十五到达,先花了一小时笔试,后来两个人技术面试,四点二十出了大楼. 一.笔试 1.单选,知识点很散,涉及数据结构链表,数组,树,堆,数据库,网络, ...

  10. DataTable和DataRow和DataColumn ~~~~~~~~~~[][]

    DataSet.Tables[0].Rows[0][1]表示DataSet中第一张表(因为Tables[0]就是第一张表的意思)中第一行(Rows[0][]) 第二列(Rows[][1])的数据. D ...