杭电acm1086
来源:互联网 发布:java https请求带证书 编辑:程序博客网 时间:2024/05/19 21:42
S(abc) = (|ab|*|ac|*sinΘ) / 2 = |ab| × |ac| / 2//叉积
#include <stdio.h>struct point {double x1, y1, x2, y2;}buf[101];int judge(int i, int j) {//叉积int f1=0,f2=0; double acd=(buf[i].x1-buf[j].x1)*(buf[i].y1-buf[i].y2)-(buf[i].x1-buf[i].x2)*(buf[i].y1-buf[j].y1); double bcd=(buf[i].x1-buf[j].x2)*(buf[i].y1-buf[i].y2)-(buf[i].x1-buf[i].x2)*(buf[i].y1-buf[j].y2); if(acd*bcd<=0) f1=1; double cab=(buf[j].x1-buf[i].x1)*(buf[j].y1-buf[j].y2)-(buf[j].x1-buf[j].x2)*(buf[j].y1-buf[i].y1); double dab=(buf[j].x1-buf[i].x2)*(buf[j].y1-buf[j].y2)-(buf[j].x1-buf[j].x2)*(buf[j].y1-buf[i].y2); if(cab*dab<=0) f2=1; if((f1+f2)==2) return 1; return 0; }int main() {int n, i, j, ans;while(~scanf("%d", &n) && n) {ans = 0;for(i=0; i<n; i++)scanf("%lf%lf%lf%lf", &buf[i].x1, &buf[i].y1,&buf[i].x2, &buf[i].y2);for(i=0; i<n-1; i++)for(j=i+1; j<n; j++)if(judge(i, j))ans ++;printf("%d\n", ans);}return 0;}
0 0
- 杭电acm1086
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- 杭电ACM2028 求教
- Linux设备驱动中的阻塞和非阻塞I/0,
- [转载]Linux 内核源码中likely()和unlikely()
- 栈的链式表示和实现
- ANDROID开发从零开始系列课程讲师CSDN若水
- Android JNI(3) --在C代码中使用logcat
- 杭电acm1086
- 黑马程序员---Java基础篇之流程控制语句及控制跳转语句
- Android之ListView分页获取网路数据客户端实现(开启异步任务,获取网络数据)(三)
- 手把手教你android平台下通讯录的开发实战视频
- mysql binlog 分析
- 【WIN08R2 Active Directory】之一 部署企业中第一台Windows Server 2008 R2域控制器
- ActionScript 3.0 按钮控制音乐播放、暂停、停止、循环
- iOS 上基于js的monkey的测试
- 使用freeMark生成word