Moon Game FZU - 2148 (计算几何,叉积判断对角线)

PADS Layout差分对布线实战:从规则设置到高速信号优化 本文详细讲解了在PADS Layout中进行差分对布线的完整实战流程。从在Layout中定义差分对网络,到进入Router配置线宽、间距等关键规则,再到布线实战技巧与高速信号完整性优化,系统阐述了如何确保差分信号(如USB、HDMI)的稳定传输,是高速PCB设计的核心技能。 阅读详情

Moon Game

FZU - 2148

Fat brother and Maze are playing a kind of special (hentai) game in the clearly blue sky which we can just consider as a kind of two-dimensional plane. Then Fat brother starts to draw N starts in the sky which we can just consider each as a point. After he draws these stars, he starts to sing the famous song “The Moon Represents My Heart” to Maze.

You ask me how deeply I love you,

How much I love you?

My heart is true,

My love is true,

The moon represents my heart.

…

But as Fat brother is a little bit stay-adorable(呆萌), he just consider that the moon is a special kind of convex quadrilateral and starts to count the number of different convex quadrilateral in the sky. As this number is quiet large, he asks for your help.


Input

The first line of the date is an integer T, which is the number of the text cases.

Then T cases follow, each case contains an integer N describe the number of the points.

Then N lines follow, Each line contains two integers describe the coordinate of the point, you can assume that no two points lie in a same coordinate and no three points lie in a same line. The coordinate of the point is in the range[-10086,10086].

1 <= T <=100, 1 <= N <= 30

Output

For each case, output the case number first, and then output the number of different convex quadrilateral in the sky. Two convex quadrilaterals are considered different if they lie in the different position in the sky.

Sample Input
2
4
0 0
100 0
0 100
100 100
4
0 0
100 0
0 100
10 10
Sample Output
Case 1: 1
Case 2: 0

题意:第一行给出T,接下来有T组数据,每组数据第一行给出N,接下来N行,每行输入一个点的x,y坐标。输出这些点一共可以构成多少凸四边形。

思路首先枚举四个点,然后任意选出两对点相连(四个点,共有3中可能),看两条直线是否是对角线(一条直线两点在另一条直线的两侧),只要三种情况中有一种可以出现对角线即可,利用叉积判断

code:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
struct node{
    double x,y;
}p[40];
bool cmp1(node a,node b){
    if(a.y == a.x) return a.x < b.x;
    return a.y < b.y;
}
bool iscross(node a,node b,node c,node d){
    double ans1 = (c.x - a.x) * (b.y - a.y) - (c.y - a.y) * (b.x - a.x);
    double ans2 = (d.x - a.x) * (b.y - a.y) - (d.y - a.y) * (b.x - a.x);
    double ans3 = (a.x - d.x) * (c.y - d.y) - (a.y - d.y) * (c.x - d.x);
    double ans4 = (b.x - d.x) * (c.y - d.y) - (b.y - d.y) * (c.x - d.x);
    if(ans1 * ans2 < 0 && ans3 * ans4 < 0) return true;//判断cd两点在直线ab两侧,同时ab两点在直线cd两侧
    else return false;
}
bool judge(node a,node b,node c,node d){
    if(iscross(a,b,c,d) || iscross(a,c,b,d) || iscross(a,d,b,c))//ab和cd,ac和bd,ad和bc判断是否相交
        return true;
    else return false;
}
int main(){
    int t,cas = 0;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        for(int i = 0; i < n; i++){
            scanf("%lf%lf",&p[i].x,&p[i].y);
        }
        sort(p,p+n,cmp1);
        int ans = 0;
        for(int i = 0; i < n; i++){
            for(int j = i+1; j < n; j++){
                for(int k = j+1; k < n; k++){
                    for(int q = k+1; q < n; q++){
                        if(judge(p[i],p[j],p[k],p[q]))
                            ans++;
                    }
                }
            }
        }
        printf("Case %d: %d\n",++cas,ans);
    }
    return 0;
}


【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真 OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。 阅读详情

相关推荐

从‘查理复用’到TM52F1363:深入剖析5脚188数码管的驱动原理与避坑指南

本文深入解析了5脚188数码管的驱动原理,重点介绍了查理复用技术如何通过5个IO引脚高效驱动188段显示,并详细探讨了TM52F1363单片机的寄存器配置与驱动实现。文章还提供了常见问题的解决方案和性能优化技巧,帮助开发者避免实际应用中的各种陷阱。

weixin_29159441的博客 477

计算几何基础+判断线段相交

快速排斥实验 假设以线段P1,P2为对角线作一矩形R,再以Q1,Q2为对角线作矩形T,当两个矩形不相交的时候两条线段肯定不相交,即线段相交的必要条件时矩形相交。 P1坐标为(p1x,p1y),P2坐标为(p2x,p2y),Q1的坐标为(q1x,q1y),Q2的坐标为(q2x,q2y)。 那矩形相交的条件就是: min(p1x,p2x) <= max(q1x,q2x) && min(q1x,q2x) <= max(p1x,p2x) && min(p1y,p2...

qq_52317884的博客 3045

Discrete Optimization (Coursera) 学习笔记 Week 1 introduction (开个帖子)

Week 1 Introduction 这位教授Pascal Van Hentenryck 真的算是优化领域神级别的人物了吧?截一张Google scholar的图大家感受一下… 居然在Coursera上看到了他开的课:Discrete Optimization。试听了几节后,发现讲得很有激情,而且深入浅出。遂决定花暑假跟完这一门课。 这门课每周花两三个小时介绍基础概念,然后得花十几个小时写作业(coding)… 一开始以为Coursera上的课的作业应该不会太难,然后第一次作业(knapsack)我就被

ZJ_11701的博客 656

FZU 2148 Moon Game

Problem Description Fat brother and Maze are playing a kind of special (hentai) game in the clearly blue sky which we can just consider as a kind of two-dimensional plane. Then Fat brother starts to ...

梦想天空分外蓝 366

Qupath软件的安装与使用

Qupath软件的安装与使用软件安装软件下载软件安装【windows版】简单使用文件打开人工标注标注导出和导入 Qupath是一款开源的医学图像标注软件,适合放射影像及数字病理切片等的查看。同时,其自带的标注功能使得医生可以直接通过该软件进行病变区域的标注和分类。跟进一步的,该软件提供groovy脚本运行接口,可供操作者编写和运行脚本,将标注信息转换为xml或者json格式的数据进行进一步的后序处...

qq_40662074的博客 3万+

CoaXPress协议入门(1)---- CXP测试套件

CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的Camera Link协议,常见于科学相机、工业相机、医学图像、航空防务等场景。CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。CXP易于集成,可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格(推荐使用RG6),并且图像、控制通讯、触发、电源都可以使用同一条线缆。

素手挽剑 9506

FZU2148 Moon Game(计算几何判断凸包)

题目大意:给n个二维坐标点,保证任意三点不共线,问能构成的不同凸四边形的个数。 解题思路: 思路1:找对角线段,相交则为凸四边形,否则为凹多边形; 思路2:利用面积,如果为凹四边形其中必然存在一个由三点构成的三角形等于其他三个由三点构成的三角形的和,否则为凸多边形。给的是坐标,可以利用叉积公式计算三角形的面积。如果用海伦公式计算的话可能会精度问题导致WA,因为其中做了许多开根号。 思路3:未完成...

小胡同的诗 259

cocos2dx中DrawNode画线锯齿和非凸多边形填充

记录一下在cocos2dx中使用DrawNode所遇到的2个问题 1.画线锯齿问题 ios版本下,在AppController.mm中设置CCEAGLView的multiSampling和numberOfSamples。如下图 CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]

hello-world 5413

Moon Game FZU - 2148(计算几何)

I - Moon Game 题目链接:FZU - 2148题意:n个点, 问各一个成几个不重复的凸四边形;思路:凸四边形对角线一定相交;#include &lt;stdio.h&gt; #include &lt;algorithm&gt; #include &lt;iostream&gt; #include &l...

Sirius_han的博客 228

AutoSAR系列讲解(深入篇)14.7-Mcal Adc配置(上)

详细讲解了ADC的各个配置项的作用

雪云飞星的博客 1万+

Python 实战:爬取高德地图交通数据(路况拥堵指数分析)

高德地图是由高德软件有限公司开发的一款地图导航产品,提供详细的地图浏览、路线规划、实时路况、公共交通查询等功能。高德地图拥有庞大的用户群体和海量的交通数据,这些数据对于交通管理、城市规划、出行服务等领域具有重要的价值。通过对高德地图交通数据的分析,我们可以了解城市交通的运行状况,识别拥堵路段,预测交通流量,为交通管理部门和出行者提供决策支持。

yansideyucsdn的博客 2684

fzu 2148 Moon Game

题意:判断凸四边形 凸四边形:没有角大于180的四边形。 思路: 不能直接用凸包,要用的话要逆排序点然后使用。 面积法:如果4个点中存在某个点D,Sabd + Sacd + Sbcd = Sabc,则说明是凹四边形。 #include <iostream> #include <cstdio> #include <sstream> #...

weixin_30734435的博客 136

手把手教你使用 YOLOv11/v8 算法 + PaddleOCR 算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等

手把手教你使用 YOLOv11/v8算法 + PaddleOCR算法完成车牌检测和车牌识别系统,AI智能体,毛玻璃系统,包括PaddlePaddle安装、数据集预处理、模型训练、AI大模型应用等。车牌识别系统支持 蓝牌、绿牌、黄牌、双层车牌等车牌识别。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2779

FZU - 2148 I - Moon Game 暴力+叉积判方向

题意明了,找凸四边形个数  n = 30;四重循环暴力  排好序后我们知道对角线可能是 1-3和2-4,,也可能是 1-4和2-3,,只需判断对角线是否相交就可以判断是否为凸四边形  这里用叉积判是否相交:(下一篇博文用面积法判相交)  #include #include #include #include #include #include #include #include

床前明月光 419

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Fzu 2148 Moon Game 判断凸四边形 判断线段相交

#include #include #include using namespace std; #define N 35 struct Point{ int x,y; }s[N]; struct Line{ Point a; Point b; }; double CrossProd(Point a,Point b,Point c){ return (b.x-a.x)*(c.y-a.y)

DieOrThink 1157

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

FZU 2148 ——Moon Game 判断凸四边形

题目链接:点击打开链接 题目大意:给你一堆的点,然后判断最多能组成多少个凸四边形 解题思路:因为最多有30个点,所以直接暴力搜索就可以了 所学知识点: 如何判断凸四边形,在这种有坐标的情况下当然是用对角线相交来做了                         如何判断对角线相交呐:如果两条线段相交,则这两条线段必然相互相互跨立,所以用两次叉积都小于等于0来做就可以了 在判断

江河湖海 822

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

FZU - 2148 Moon Game

Description Fat brother and Maze are playing a kind of special (hentai) game in the clearly blue sky which we can just consider as a kind of two-dimensional plane. Then Fat brother starts to draw N

七夜 611

ACM学习历程—FZU2148 Moon Game(计算几何)

Moon Game Description Fat brother and Maze are playing a kind of special (hentai) game in the clearly blue sky which we can just consider as a kind of two-dimensional plane. Then Fat brother...

weixin_30364325的博客 115

Moon Game (凸四边形个数,数学题)

Problem 2148 Moon Game Accept: 24 Submit: 61 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Fat brother and Maze are playing a kind of special (hentai) game in the clearl

寻找&星空の孩子 1209

叉积

叉积的计算是线段方法的核心。考虑如图33-1(a)所示的向量p1和p2。我们可以把叉积解释为由点(0,0),p1,p2 和 p1+p2=(x1+x2,y1+y2)所构成的平行四边形的有向面积。另一种与之等价但更有效的叉积定义方式是将之看做矩阵行列式: p1×p2=det[x1y1x2y2]=x1y2−x2y1=−p2×p1 若p1×p2值为正,则相对于原点(0,0)来说,p1位于p2的顺时针方向;...

codeswarrior的博客 7891

广场舞 (第七届蓝桥杯决赛题过50%数据讲解代码+过100%数据思路)

广场舞LQ市的市民广场是一个多边形,广场上铺满了大理石的地板砖。地板砖铺得方方正正,就像坐标轴纸一样。以某四块砖相接的点为原点,地板砖的两条边为两个正方向,一块砖的边长为横纵坐标的单位长度,则所有横纵坐标都为整数的点都是四块砖的交点(如果在广场内)。广场的砖单调无趣,却给跳广场舞的市民们提供了绝佳的参照物。每天傍晚,都会有大批市民前来跳舞。舞者每次都会选一块完整的砖来跳舞,两个人不会选择同一块砖,...

codeswarrior的博客 2347

Cake ZOJ - 3537(判断凸包模板+最优三角剖分+区间dp详解)

Cake ZOJ - 3537 You want to hold a party. Here's a polygon-shaped cake on the table. You'd like to cut the cake into several triangle-shaped parts for the invited comers. You have a knife to cut. Th...

codeswarrior的博客 1148

How Many Pieces of Land ? UVA - 10213 (计算几何公式)

How Many Pieces of Land ? UVA - 10213 Lemma If we already have n points on the circle and add one more point, we draw n lines from the new point to previously existing points. Two cases

codeswarrior的博客 518

Two Triangles FZU - 2270 (计算几何,叉积判断对称)

Two Triangles FZU - 2270 Fat brother and Maze are playing a kind of special (hentai) game with some points in a two-dimensional plane. First Fat Brother wou...

codeswarrior的博客 496
上一篇: A-B Game FZU - 2147
下一篇: Chess For Three (模拟)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值