hdu 4709 Herding
来源:互联网 发布:笛子软件 编辑:程序博客网 时间:2024/05/19 13:09
http://acm.hdu.edu.cn/showproblem.php?pid=4709
思路:方法一: 叉积求面积,在三角形ABC中向量AB=( x2-x1, y2-y1 ),向量AC=( x3-x1, y3-y1 )
AB X AC=1/2 *[ (x2-x1) *(y3-y1)-(y2-y1)*(x3-x1) ]
方法二:海伦公式,通过向量不共线来确定三角形。
方法一:
#include<iostream>#include<stdio.h>#include<math.h>using namespace std;double X[128];double Y[128];double ff(int i,int j,int k){ return fabs(X[i]*Y[j]+Y[i]*X[k]+X[j]*Y[k]-X[k]*Y[j]-X[j]*Y[i]-X[i]*Y[k])/2;}int main(){ int T; int N; int i,j,k; double a,b,c; double S; double area; double mi_area; scanf("%d",&T); while(T--){ scanf("%d",&N); for(i=0;i<N;++i){ scanf("%lf%lf",&X[i],&Y[i]); } area=0; mi_area=-1; for(i=0;i<N;++i){ for(j=i+1;j<N;++j){ for(k=j+1;k<N;++k){ area=ff(i,j,k); //printf("%lf\n",area); if(area!=0){ if(area<mi_area||mi_area<0){ mi_area=area; } } } } } if(mi_area<0){ printf("Impossible\n"); } else{ printf("%.2f\n",mi_area); } } return 0;}
方法二:
#include<iostream>#include<stdio.h>#include<math.h>using namespace std;#define F 1e-17double X[128];double Y[128];int main(){ int T; int N; int i,j,k; double a,b,c; double S; double area; double mi_area; scanf("%d",&T); while(T--){ scanf("%d",&N); for(i=0;i<N;++i){ scanf("%lf%lf",&X[i],&Y[i]); } mi_area=-1; for(i=0;i<N;++i){ for(j=i+1;j<N;++j){ for(k=j+1;k<N;++k){ if( fabs( (X[j]-X[i]) * (Y[k]-Y[i]) - (X[k]-X[i]) * (Y[j]-Y[i]) ) < F ) continue; a=sqrt((X[i]-X[j])*(X[i]-X[j])+(Y[i]-Y[j])*(Y[i]-Y[j])); b=sqrt((X[i]-X[k])*(X[i]-X[k])+(Y[i]-Y[k])*(Y[i]-Y[k])); c=sqrt((X[j]-X[k])*(X[j]-X[k])+(Y[j]-Y[k])*(Y[j]-Y[k])); S=(a+b+c)/2; area=sqrt(S*(S-a)*(S-b)*(S-c)); if(area<mi_area||mi_area<0) { mi_area=area; } } } } if(mi_area<0){ printf("Impossible\n"); } else{ printf("%.2f\n",mi_area); } } return 0;}
0 0
- hdu 4709 Herding
- hdu 4709 Herding acm
- hdu - 4709 - Herding
- HDU 4709 Herding
- hdu 4709 Herding
- HDU 4709 Herding
- HDU 4709 Herding
- HDU - 4709 Herding
- HDU 4709 Herding
- hdu 4709 Herding (数学)
- HDU 4709 Herding
- HDU 4709 Herding
- HDU 4709 Herding
- hdu 4709 Herding
- HDU 4709:Herding
- HDU 4709 Herding
- hdu 4709 Herding
- hdu 4709 Herding
- 小算法:给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串s首先
- Javascript中事件捕获、事件冒泡以及事件委托机制
- 1.1你是谁?你从哪来?你到哪去? -交给学习来解答
- 微信开发理解
- leetcode——127—— Word Ladder
- hdu 4709 Herding
- linux 手动配置ip
- 《小强升职记》读书笔记
- 部分A+B,PAT,1016
- hdu 4715 Difference Between Primes
- 关于Win下“ImportError: No module named _curses”的解决方案
- android更新UI的几种方法
- Ubuntu使用中一些问题的解决办法备忘
- 研究生第二三课 软件工程&电子商务