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

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. SQL SERVER读书笔记:nolock

    让查询语句不去申请共享锁,从而消除死锁,效果立竿见影. 缺点: 1.脏读 2.只能解决共享锁(S锁)参与的问题 3.需要修改语句本身才能使用

  2. poj--2186--Popular Cows (scc+缩点)

    Popular Cows Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total ...

  3. 辨异 —— Java 中的抽象类和接口

    接口优于抽象类.-- <Effective Java>(Item 18) 0. 语法区别 抽象类允许给出某些方法的实现,接口不允许: 为了实现由抽象类定义的类型(type),类必须成为抽象 ...

  4. java8新特性系列:[1]让你的eclipse支持java8

    package com.anhui.jdk8; /** * 针对eclipse是否支持java8小测试 * MainClass * @author zhongzh * */ public class ...

  5. c#约瑟环实现

    约瑟环问题就是有n个人坐成一个圈.从某个人开始报数,数到m的人出列,接着从列出的下一个人开始重新报数,数到m的人再次出列,如此循环,直到所有的人都出列,最后按出列的顺序输出.

  6. Open CASCADE Technology(OCCT)概述

    OCCT模块结构图 基础类: Foundation Classes module underlies all other OCCT classes; 模型数据: Modeling Data modul ...

  7. Python金融量化

    Python股票数据分析 最近在学习基于python的股票数据分析,其中主要用到了tushare和seaborn.tushare是一款财经类数据接口包,国内的股票数据还是比较全的 官网地址:http: ...

  8. JS实时获取浏览器窗口尺寸 .

    给div实时设置宽度 <div id="detail" style="width: 100%; overflow: scroll;"> </d ...

  9. 试图ddms 如果丢失adv链接解决办法!

    点击如下图菜单 重启链接adv即可显示.

  10. P1304 哥德巴赫猜想

    题目描述 输入N(N<=10000),验证4~N所有偶数是否符合哥德巴赫猜想. (N为偶数). 如果一个数,例如10,则输出第一个加数相比其他解法最小的方案.如10=3+7=5+5,则10=5+ ...