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

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. 数据库技术_Orcale技术(0002)_5分钟会用存储过程_存储过程实例

    基础技术: 样例业务功能: 1.依据传入的类型A_TYPE联合查询PROCEDURE_TEST_A表.PROCEDURE_TEST_A_SUB表中的数据.并显示主要内容. 2.依据传入的类型A_TYP ...

  2. MySQL出现Ignoring query to other database的问题

    今天使用mysql的时候,输入随意一条命令都会出: Ignoring query to other database 这条错误信息,非常是奇怪. 后来才发现是登录数据库时.少了个-u的參数.. 正确的 ...

  3. js实现原生Ajax的封装及ajax原理详解

    原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...

  4. Spring中JdbcTemplate中使用RowMapper

    转自:https://blog.csdn.net/u012661010/article/details/70049633 1 sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类 ...

  5. [WebServer] Windows下Apache与Tomcat的整合

    转自:http://bbs.blueidea.com/thread-2873268-1-1.html 准备工作:1. Apache 2.2.4下载地址:http://cztele1.skycn.com ...

  6. js设计模式-适配器模式

    说明:适配器模式表面上看起来像门面模式.它们都要对别的对象进行包装并改变其呈现的接口.但是两者的差别在于它们如何改变接口.门面元素展现的是一个简化的接口,它并不提供额外的选择,而且有时为了方便完成常见 ...

  7. if,elif,else的关系 input print int的用法

    qian=input("找劳保网是什么网站?:")if qian=="zhaolaobaowang.com": print("正确")els ...

  8. C-C语言概述

    1.数据+算法=程序. 2.C语言程序是由一个或多个函数组成的,函数是由语句组成的,语句是由关键字,标识符,运算符,数据组成的:语句可分为:声明语句,赋值语句,控制语句,函数语句,空语句. 3.#in ...

  9. js两个页面之间URL传递参数中文乱码

  10. hdu3938 Portal 离线的并查集

    离线算法是将全部输入都读入,计算出所有的答案以后再输出的方法.主要是为避免重复计算.类似于计算斐波那契数列的时候用打表的方法. 题目:给一个无向图,求有多少个点对,使得两点间的路径上的花费小于L,这里 ...