FZU 2148
来源:互联网 发布:阿里云cdn添加域名 编辑:程序博客网 时间:2024/06/11 22:26
这道题目不算太难
题意:给你n个点问你能组成多少凸4边形,直接暴力即可
判断是凸4边行的方法,排除法,如果一个顶点个与其他三个顶点组成的三角形的面积和应等于那三个顶点组成三角形的面积
由三个顶点求三角形面积的公式↓↓↓↓
A(x1,y1) B(x2,y2) C(x3,y3)
| x1 y1 1|
| x2 y2 1| * 0.5
| x3 y3 1|
//不知道咋推得,自己还是太菜 ps:听说初中过。。。。
其他也没啥,上代码,
JAVA
package fZU_2148_Moon_Game;import java.util.Scanner;public class Main { static int x[]=new int[1000]; static int y[]=new int[1000]; public static void main(String args[]) { Scanner cin=new Scanner(System.in); int t; t=cin.nextInt(); int tt=0; while(t>0) { t--;tt++; int n; n=cin.nextInt(); for(int i=0;i<n;i++) { x[i]=cin.nextInt(); y[i]=cin.nextInt(); //System.out.println("666"); } int ans=0; int i,j,k,l; for(i=0;i<n;i++) { for( j=i+1;j<n;j++) { for(k=j+1;k<n;k++) { for( l=k+1;l<n;l++) { //System.out.println(i+" "+j+" "+k+" "+l); if(ok(i,j,k,l)*ok(j,i,k,l)*ok(k,i,j,l)*ok(l,i,j,k)>0) ans++; } } } } System.out.println("Case "+tt+": "+ans); } } public static int ok(int a,int b,int c,int d) { if(js(a,b,c)+js(a,c,d)+js(a,b,d)==js(b,c,d)) return 0; else return 1; } public static double js(int a,int b,int c) { double aa = 0; aa = Math.abs(x[a]*y[b]+x[b]*y[c]+x[c]*y[a]-x[a]*y[c]-x[b]*y[a]-x[c]*y[b]); // System.out.println(a+" "+" "+b+" "+c+" "+aa*0.5); return aa*0.5; }}
加油!!!
阅读全文
0 0
- FZU 2148
- FZU 2148
- fzu 2148 Moon Game
- FZU 2148 Moon Game
- FZU - 2148 Moon Game
- FZU-2148 Moon Game
- FZU 2148 Moon Game
- FZU-2148-Moon Game
- FZU 2148 Moon Game
- FZU-2148-Moon Game
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- FZU
- C++ 将数据写入txt文件WriteFile的使用
- hdu6070 二分+线段树
- IO流(2)—知识结构
- USART串口的使用
- Java管理扩展指南之JMX技术总览
- FZU 2148
- 面向对象概念
- css中的定位对其他元素的影响
- DOM替换replaceWith()和replaceAll()
- 437. Path Sum III
- 面试问题收录
- Z-fighting
- hdu6069 区间筛
- 记录感想与收获