解题报告-HDOJ-1086(几何问题)

CONN工具箱分析fmri数据笔记1 前言一、安装二、预处理三、去噪 前言 CONN:functional connectivity toolbox,是基于MATLAB和SPM的一个对功能磁共振数据进行分析的一个工具箱。可以进行以下分析: Seed-based correlations (SBC), ROI-to-ROI correlations, graph analyses, Independent component analyses(group-ICA), Masked (ICA) Amplitude of Low-Frequency. 阅读详情

题意:

        给你几条线段,让你求出这些线段的所有交点数。例如输入样例:先输入一个n,代表有n条线段,接着每一行输入一天线段,每两个数代表一个端点,0.00 0.00 1.00 1.00,代表着以0.00,0.00)和(1.00,1.00)为两个端点的一条线段。

思路:

        由两个端点可以求出这条线段所在的直线方程,并由这两个端点确定可行区间。对所有的直线两两联立求得任意两条直线之间是否有交点,并且判断该交点是否合法(在可行区间),同时判断该点是否曾经被记录,若没被记录,交点数加1,并把这个交点记录下来。

代码实现:

#include <iostream>

using namespace std;

const int MAXN = 100 + 10;
typedef struct point
{
	double x,y;
}point;
point p[MAXN * MAXN];

typedef struct segment
{
	double a,b,c,d;
}segment;
segment se[MAXN];		//保存线段线段

void f(segment A, segment B, int &cnt)		//两条线段和当前交点数
{
	double x,y;		//联立求解x,y
	if ((A.a - A.c) / (A.b - A.d) == (B.a - B.c) / (B.b - B.d))		//A、B平行
	{
		return;
	}
	if (A.a - A.c ==0 && B.a - B.c != 0)		//A线段为竖直线且B线段不为竖直线
	{
		x = A.a;
		y = (B.b - B.d) * (x - B.a) / (B.a - B.c) + B.b;
	}
	else if(B.a - B.c == 0 && A.a - A.c !=0)		//B线段为竖直线且A线段不为竖直线
	{
		x = B.a;
		y = (A.b - A.d) * (x - A.a) / (A.a - A.c) + A.b;
	}
	else
	{
		x = (B.a * (B.b - B.d) / (B.a - B.c) - A.a * (A.b - A.d) / (A.a - A.c) + A.b - B.b) / ((B.b - B.d) / (B.a - B.c) - (A.b - A.d) / (A.a - A.c));
		y = (B.b - B.d) / (B.a - B.c) * (x - B.a) + B.b;
	}
	int flag = 1;
	if (x - A.a >= 0 && A.c - x >= 0 && x - B.a >= 0 && B.c - x >= 0)
	{
		for (int i = 0; i < cnt; i++)		//判断是否被标记
		{
			if (p[i].x - x == 0 && p[i].y - y == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag)		//没有被标记,保存下来
		{
			p[cnt].x = x;
			p[cnt].y = y;
			cnt++;
		}
	}
}

int main()
{
	int n;
	while (cin>>n && n)
	{
		for (int i = 0; i < n; i++)
		{
			scanf("%lf%lf%lf%lf",&se[i].a, &se[i].b, &se[i].c, &se[i].d);
			if (se[i].a > se[i].c)		//保证a<c,b<d
			{
				double m = se[i].a;
				se[i].a = se[i].c;
				se[i].c = m;

				m = se[i].b;
				se[i].b = se[i].d;
				se[i].d = m;
			}
		}

		int cnt = 0;
		for (int i = 0; i < n; i ++)
		{
			for (int j = i + 1; j < n; j++)
			{
				f(se[i], se[j], cnt);
			}
		}
		cout<<cnt<<endl;
	}
	return 0;
}


 

国科大学习资料--模式识别与机器学习(黄庆明)--期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) 国科大学习资料–模式识别与机器学习(黄庆明)–期末复习题2(含答案) ... 阅读详情

相关推荐

保姆级教程:用Wireshark抓包分析10M汽车以太网PLCA轮询机制(附pcap文件)

本文详细介绍了10M汽车以太网PLCA轮询机制的抓包分析与性能优化方法。通过Wireshark实战教程,解析PLCA协议的时分多址特性、总线型拓扑结构及带宽优化策略,帮助工程师提升车内网络的可靠性和实时性。附赠pcap文件供实践参考。

wdx01234567的博客 239

计算几何-hdoj-1086

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7027    Accepted Submission(s): 3397 Problem Descript

yichudu 1373

大疆航线文件解析指南:5分钟搞懂KMZ里的template.kml和waylines.wpml区别

本文深入解析大疆无人机航线文件KMZ中template.kml与waylines.wpml的核心区别。template.kml是定义任务框架和全局参数的可编辑模板,而waylines.wpml是包含精确执行指令的最终文件。理解两者差异对于高效规划航线、批量生成任务及进行二次开发至关重要。

sun99的博客 866

hdoj1086

判断一堆线段的交点个数。利用叉积。代码如下。 // hdu1086.cpp : 定义控制台应用程序的入口点。 // Accepted #include "stdafx.h" #include #include #include #include using namespace std; class Point { friend bool check_cross(const Poi

u011575841的专栏 307

〔重庆理工大学〕计算机组成原理课设报告--16位单周期CPU设计

本课程设计的实验平台为Altera Quartus II 软件和Altera Cyclone V Starter 工具箱。(1)Cyclone V是Altera FPGAs家族的一类,它面向低功耗应用。Cyclone V GX 5CGXFC5C6F27C7N 芯片有不同的转换器,按钮,LED灯,七段显示器,HDMI接口,SD卡读卡器以及其他链接等。Cyclone V GX 5CGXFC5C6F27C7N是Starter工具箱的重要组件。(2)测试台包含在测设备(DUT)和用于仿真的模拟输入。

Pretty Boy Fox的博客 1066

STM32G431的 FDCAN使用5M加速时,出现奇葩问题,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1637

HDOJ 1086 线段相交

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7568    Accepted Submission(s): 3691 Problem Descri

小人物的草稿本 831

人形机器人开源资源大盘点(四):硬件开源平台

开源人形机器人平台推动技术民主化 本期聚焦四大开源人形机器人平台:斯坦福的ToddlerBot以6000美元低成本实现30自由度运动,支持仿真到现实的零样本迁移;法国Reachy2被HuggingFace收购,融合开源AI与硬件,适配医疗、工业等场景;国内OriginMan基于ROS2全开源,集成大模型能力,支持深度改造;OAN框架则为经典NAO机器人注入开源活力,扩展交互功能。这些平台通过不同路径降低研发门槛,推动人形机器人技术走向开放共享的未来。

Studying…… 370

hdu1086(线段相交)

题目意思: 给出n个线段,判断这n条线段中,线段相交的对数。 http://acm.hdu.edu.cn/showproblem.php?pid=1086 题目分析: 此题主要写出判断线段相交的函数,然后判断每一对线段即可,时间复杂度O(n*n)。详细解释见代码。 AC代码: /**  *判断AB和CD两线段是否有交点:  *同时满足两个条件:('x'表示叉积)

机器笨猫 2592

UG\NX二次开发 使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征

使用UF_CURVE_create_ocf_feature函数创建“在面上偏置”特征。

王牌飞行员_里海的博客 850

【技能】OpenClaw Skills学习及手搓一个极简skill

本文介绍了OpenClaw Skills的基础概念与使用方法。Skills是OpenClaw代理使用工具的核心载体,通过SKILL.md文件定义技能属性和执行方式。技能加载遵循"工作区>本地>内置>自定义目录"的优先级规则。用户可通过ClawHub一键安装现成技能,也可自定义开发技能:创建技能目录,编写包含YAML元数据和执行指令的SKILL.md文件,放置于工作区skills目录进行测试。文章还介绍了多代理场景下的技能共享、插件集成以及安全注意事项,包括沙箱使用和敏感

海兰 3976

hdoj-1086-You can Solve a Geometry Problem too 判断线段是否相交

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8683 Accepted Submission(s): 4227 Problem Description

qq_18062811的专栏 723

AI Agent开发第49课-DIFY让AI自动预约排班后发企业微信通知-MongoDb-Redis-企业微信调用

我们的Dify会讲得很透彻,坚持喂饭级教程,从一个基本的AI自动预约客户到自动记录客户的信息再到自动判断下一步如何走全部是AI化的,这是一个真正的AI原生应用,它来自于我的一个大型物业公司用AI自动预约系统中的一部分。我们会使用这个预约流做完整的Dify例子来讲完,因为它太有代表性了。工作流中的控制反转、AI决策下一步怎么走、人为干涉、用户行为判断、外部中间件如Redis,今天我们就要讲到在Dify中调用MongoDB的数据以及企业微信通知来作为预约派单的最后一步了。

打造全国最全的AI Agent开发知识领域的博客 1753

杭电oj1062题c语言答案,ACM解题报告搜索 hdoj/hdu

hdoj1001 hdoj1002 hdoj1003 hdoj1004 hdoj1005 hdoj1006hdoj1007 hdoj1008 hdoj1009 hdoj1010 hdoj1011 hdoj1012 hdoj1013hdoj1014 hdoj1015 hdoj1016 hdoj1017 hdoj1018 hdoj1019 hdoj1020hdoj1021 hdoj1022 hdoj1...

weixin_29317963的博客 1109

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

HDOJ 题目类型

转载 HDOJ 题目分类(转) 1001整数求和 水题1002 C语言实验题——两个数比较 水题1003 1、2、3、4、5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标...

weixin_30521649的博客 784

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【集训笔记】计算几何【HDOJ2036【HDOJ1086【HDOJ1115【HDOJ1147【HDOJ1392 【ZOJ2976

改革春风吹满地 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 16889 Accepted Submission(s): 8636 Problem Description “ 改革春风吹满地, 不会A...

weixin_30325487的博客 239

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDOJ1086 线段相交问题

转载出处:点击打开链接 You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 11215    Accepted Submission(s): 5537

勇敢前进的ACMer 320

hdoj 1086 You can Solve a Geometry Problem too (判断线段相交)

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5298Accepted Submission(s): 2526 链接:http://acm.h...

dengyun9338的博客 176

Hdoj 1086.You can Solve a Geometry Problem too 题解

Problem Description Many geometry(几何)problems were designed in the ACM/ICPC. And now, I also prepare a geometry problem for this final exam. According to the experience of many ACMers, geometry p...

优快云2082的博客 263

【计算几何】You can Solve a Geometry Problem too—hdoj 1086(判断线段相交)

You can Solve a Geometry Problem too—hdoj 1086(线段相交)题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1086 题目解析让你求相交点的个数,其实题目是简单的,就是考察了一个知识点,判断线段相交与否。判断线段相交的有很多种方法,最容易想到的就是求出点坐标,但代码实现起来有点麻烦。我学到了一个更简便的方

学无纸巾 588

杭电1086

hdu1086判断两线段相交的模板 # include # include struct Node{  double x,y; }point1[105],point2[105]; double Cross(Node p1,Node p2,Node p3) {  return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x); } d

Mr.Coder 679

HDOJ题目分类(已经过时,适时再找下)

HDOJ题目分类 转载自:http://blog.youkuaiyun.com/vsooda/article/details/7258791 题,应该总结方法,慢慢的水 1001 整数求和 水题 1002 C语言实验题——两个数比较 水题 1003 1、2、3、4、5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 1006

Shyazhut 1068

HDOJ(2056)&HDOJ(1086)

Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面积。 算法:先用快速排斥判断2个矩形是否相交。若不相交,面积为0。若相交,将x坐标排序去中间2个值之差,y坐标也一样。最后将2个差相乘得到最后结果。 这题是我大一的时候做过的,当时一看觉得很水...

weixin_30663471的博客 141

【HDOJ 1086】 模板水过

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8693Accepted Submission(s): 4232 Problem Description ...

weixin_30312563的博客 84

HDOJ题目分类

HDOJ题目分类 模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117

哇咔咔的升级之路~ 722

hdoj1086You can Solve a Geometry Problem too【线段相交判断】

You can Solve a Geometry Problem too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 8964    Accepted Submission(s): 4375 Problem Desc

走一步再走一步 577
上一篇: 小游戏——贪吃蛇
下一篇: 解题报告-HDOJ-1874(单源最短路径——Dijkstra)
WellerZhao
博客等级 码龄15年 11粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值