Circuit Board

2023-11-12

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=164

On the circuit board, there are lots of circuit paths. We know the basic constrain is that no two path cross each other, for otherwise the board will be burned.

Now given a circuit diagram, your task is to lookup if there are some crossed paths. If not find, print "ok!", otherwise "burned!" in one line.

A circuit path is defined as a line segment on a plane with two endpoints p1(x1,y1) and p2(x2,y2).

You may assume that no two paths will cross each other at any of their endpoints.


Input

The input consists of several test cases. For each case, the first line contains an integer n(<=2000), the number of paths, then followed by n lines each with four float numbers x1, y1, x2, y2.


Output

If there are two paths crossing each other, output "burned!" in one line; otherwise output "ok!" in one line.


Sample Input

1
0 0 1 1

2
0 0 1 1
0 1 1 0


Sample Output

ok!
burned!



YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
依旧线段相交,参照某人博客顺序,但没看代码;耶!耶!比上一个容易一点,用sort排序需要加头文件《algorithm》。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
struct node
{
	double x1,x2,y1,y2;
}g[2008];
int main()
{
	int i,j,k,m,n;
	double t,tt,ww,xx,yy;
	while(scanf("%d",&m)!=EOF)
	{
		//if(m==0)
		//break;
          for(i=0;i<m;i++)
          {
		     scanf("%lf%lf%lf%lf",&g[i].x1,&g[i].y1,&g[i].x2,&g[i].y2);
		     if(g[i].x1>g[i].x2)
		     {
     			t=g[i].x1;
     			g[i].x1=g[i].x2;
     			g[i].x2=t;
     			t=g[i].y1;
     			g[i].y1=g[i].y2;
     			g[i].y2=t;
     		}
          }
          //sort(g,g+m,cmp);
          int sum=0;
          for(i=0;i<m;i++)
          {
          	for(j=i+1;j<m;j++)
          	{
	          	if(((g[i].y2-g[i].y1)*(g[j].x2-g[j].x1)-(g[i].x2-g[i].x1)*(g[j].y2-g[j].y1))<1e-6)
	               	continue;
	          	xx=((g[j].y1*g[j].x2-g[j].y2*g[j].x1)*(g[i].x2-g[i].x1)-(g[i].y1*g[i].x2-g[i].y2*g[i].x1)*(g[j].x2-g[j].x1))/((g[i].y2-g[i].y1)*(g[j].x2-g[j].x1)-(g[j].y2-g[j].y1)*(g[i].x2-g[i].x1));
	          	yy=((g[i].y1*g[i].x2-g[i].y2*g[i].x1)*(g[j].y2-g[j].y1)-(g[j].y1*g[j].x2-g[j].y2*g[j].x1)*(g[i].y2-g[i].y1))/((g[j].x2-g[j].x1)*(g[i].y2-g[i].y1)-(g[i].x2-g[i].x1)*(g[j].y2-g[j].y1));
	          	if(xx>=g[i].x1&&xx<=g[i].x2&&xx>=g[j].x1&&xx<=g[j].x2)
	          	sum++;
	          }
          }   
          if(sum>0)
          printf("burned!\n");
          else
          printf("ok!\n");
	}
	return 0;
} 


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Circuit Board 的相关文章

  • 检索受“rowspan”影响的行的列索引的最有效方法是什么?

    考虑下表 table thead tr th th th A th th B th th C th tr thead tbody tr th 1 th td Apples td td Oranges td td Pears td tr tb
  • 如何将无向图转换为 DAG?

    The 维基页面 http en wikipedia org wiki Directed acyclic graph Relation to other kinds of graphs says 任何无向图都可以通过为其顶点选择总顺序并将每
  • C++ 输出到文本文件时换行符[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这只是一个简单的问题 但我正在尝试将
  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 在 C++ 中通过引用传递 std 算法谓词

    我正在尝试从 a 中删除元素std list并保留已删除元素的一些统计信息 为此 我使用列表中的remove if 函数 并且我有一个谓词 我想使用这个谓词来收集统计数据 这是谓词的代码 class TestPredicate privat
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • 0-1背包算法

    以下 0 1 背包问题是否可解 浮动 正值和 浮动 权重 可以是正数或负数 背包的 浮动 容量 gt 0 我平均有 这是一个相对简单的二进制程序 我建议用蛮力进行修剪 如果任何时候你超过了允许的重量 你不需要尝试其他物品的组合 你可以丢弃整
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • shell脚本中关联数组的时间复杂度

    我想知道在 shell 脚本中使用关联数组时如何构造 实现 另外 我想知道基于 shell 脚本的关联数组的时间复杂度是否是最佳的 因为我们可以使用字母和数字作为它们各自的键 编辑 他们使用什么哈希函数 如果您使用关联数组 则不能通过 使用
  • 迭代任意大小的子集

    我可以迭代大小为 1 的子集 for int a 0 a lt size a 或大小为 2 的子集 for int a1 0 a1 lt size a1 for int a2 a1 1 a2 lt size a2 or 3 for int
  • 需要一种将网络块范围折叠为超集范围列表的算法

    我的数学不及格 我需要一种有效的方法将网络范围缩小为超集 例如如果我输入 IP 范围列表 1 1 1 1至2 2 2 5 1 1 1 2至2 2 2 4 10 5 5 5至155 5 5 5 10 5 5 6至10 5 5 7 我想返回以下
  • 从一种数字系统转换为另一种数字系统后会有多少位数字

    主要问题 有多少位数字 让我解释 我有一个二进制数 11000000 十进制数是192 转换为十进制后 它有多少位 以十进制表示 在我的示例中 它是 3 位数字 但是 这不是问题 我在互联网上搜索并找到了一种用于整数部分的算法和一种用于小数
  • 正则表达式查找字符串中的整数和小数

    我有一个像这样的字符串 str1 12 ounces str2 1 5 ounces chopped 我想从字符串中获取金额 无论它是否是小数 12 或 1 5 然后获取紧邻的前一个测量值 盎司 我能够使用一个非常基本的正则表达式来获取测量
  • 举例解释bpe(字节对编码)?

    有人可以帮忙解释一下背后的基本概念吗BPE模型 除了这张纸 https arxiv org abs 1508 07909 目前还没有那么多解释 到目前为止我所知道的是 它通过将罕见和未知的单词编码为子词单元序列来实现开放词汇表上的 NMT
  • 解开 Knuth 的结:如何重构意大利面条式代码?

    这个问题的灵感来自如何将流程图转化为实施 https stackoverflow com questions 36647765它询问如何通过算法消除goto代码中的语句 这answer https stackoverflow com a 3
  • 如何在PL/SQL中模拟32位有符号整数溢出?

    您知道如何在 Oracle PL SQL 中模拟 32 位整数溢出吗 例如 2147483647 1 2147483648 or 2147483648 1 212147483647 我尝试了 PLS INTEGER 但它引发了溢出异常 我终
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • 平铺单纯形噪声?

    我 作为业余爱好者 对伪随机噪声生成很感兴趣 特别是 Perlin 和 Simplex 算法 Simplex 的优点是速度 尤其是在更高的维度上 但 Perlin 可以相对容易地平铺 我想知道是否有人知道平铺单纯形算法 固定维度就好 泛型更
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to

随机推荐

  • sm2算法前端处理_超级账本 Fabric 国密算法支持

    区块链高级技术专家群内部讲座系列活动 群内由区块链相关团队或组织的技术专家 学者和负责人等组成 目前仅限邀请加入 分享内容会在 TechFirst 微信公众号进行首发 欢迎关注 嘉宾介绍 刘地军 现就职于中国网安密码国家重点实验室 负责和参
  • poj 1195 Mobile phones

    Problem poj org problem id 1195 vjudge net contest 146952 problem C Meaning 有一个 S S 的正方形区域 两维的下标范围都是是 0 S 1 有 4 种操作 1 0
  • git图形化工具GitKraken的使用——Stash和Pop

    正如两个单词的字面意思一样 stash 贮藏 pop 将准备好的东西突然拿出来 这一节模拟git中的这两个命令 git stash 和 git stash pop 在实际开发中 解决bug是避免不了的 在git中 每个bug都是通过新建一个
  • 2022年9月电子学会C语言等级考试试卷(二级)答案解析

    青少年软件编程 C语言 等级考试试卷 二级 分数 100 题数 5 1 统计误差范围内的数 统计一个整数序列中与指定数字m误差范围小于等于X的数的个数 时间限制 5000 内存限制 65536 输入 输入包含三行 第一行为N 表示整数序列的
  • 分治法和蛮力法MATLAB求最近点对

    主程序 main m clear clc n 20 随机生成20个点 A rand n 2 10 将20个点按横坐标升序排列 A sortrows A 1 蛮力法求随机点的最近点对 mindist x1 x2 Bcloest A 1 n m
  • constraintlayout嵌套_Android开发知识(二十六)强大的约束布局 - ConstraintLayout的用法总结...

    th 0dp android layout height 0dp app layout constraintHeight percent 0 5 app layout constraintHei oid layout height 0dp
  • 中继的框架与介绍

    一 概述 继 Relay 是一种网络设备或服务 用于转发网络数据包或消息 它在计算机网络中起到桥接 转发或中转的作用 将信息从一个地方传递到另一个地方 中继可以用于不同类型的网络 包括局域网 LAN 广域网 WAN 互联网等 它可以在不同网
  • Pycharm配置本地解释器

    由于Pycharm自带解释器 所以默认情况下我们是无法使用本地安装好的第三方库的 这个时候我们需要在Pycharm中配置本地的解释器 1 setting 2 add 3 找到本地的python解释器的路径
  • 超级详细找CALL写CALL教程[转]

    首先我们要知道一点 为什么要找CALL CALL是什么 大家知道易里的子程序吧如何调用子程序的 这里的CALL就是调用子程序的意思 那问了为什么要找他的 答案是 当你些个游戏的外挂用模拟键盘操作的时候 被操作的永远是当前窗口 当窗口切换的时
  • 多元时间序列因果关系分析研究综述

    Granger因果分析基本方法 目录 Granger因果分析基本方法 条件 Granger 因果模型 多元混沌时间序列因果分析 高维时间序列的因果分析 Lasso Granger因果模型 非线性Granger因果模型 Granger因果关系
  • DHCP 理论

    DHCP的基本工作过程 有4个阶段 discover offer request ack nak 抓包 标准地址池 1 地址段 网络号 掩码 2 网关 用于不同网段通信 3 dns DHCP的offer包部分字段 option 1 掩码 o
  • 讯飞星火认知大模型可以内测了

    以ChatGPT为代表的AI产品层出不穷 每天在社交媒体都可以看到AI领域的新成果 写文章 写代码 绘画 各种功能让人大呼神奇 4月24日 讯飞星火认知大模型来了 只需一个指令 懂你所言 答你所问 创你所需 解你所难 学你所教 一旦掌握正确
  • scp传输文件的命令

    scp传输文件的命令 scp传输文件的命令 一 scp常规的使用方式 scp可以进行简单的远程复制文件的功能 它是一个在各个主机之间进行复制或文件传输的一个命令工具 它使用一种同ssh一样的安全机制来进行文件的传输 注意 下面定义的远程计算
  • 云计算day08-Kubernetes_K8s

    文章目录 1 k8s的架构 2 k8s集群的安装 2 1 环境准备 2 2 k8s master上配置 2 3 master节点安装kubernetes 2 4 node节点安装kubernetes 2 5 所有节点配置flannel网络
  • 简单阐述下决策树、回归、SVM、神经网络等算法各自的优缺点?

    正则化算法 Regularization Algorithms 集成算法 Ensemble Algorithms 决策树算法 Decision Tree Algorithm 回归 Regression 人工神经网络 Artificial N
  • 检测浏览器是否开启firebug以及如何避免调试信息带来的脚本错误

    今天发现使用Gmail的时候开启firebug 会给出提示 在已知情况下 除非正确配置 Firebug 否则它会使 Gmail 运行缓慢 解决此问题 隐藏 感叹Gmail真是事无巨细 面面都考虑到了 于是想了解Gmail是如何检测用户是否开
  • vue解决Not allowed to load local resource

    前言 在进行通过本地路径进行加载图片的时候 突然就报了这个问题 Not allowed to load local resource 这个是由于安全性的问题 导致浏览器禁止直接访问本地文件 那么 这边我说一下我具体是怎么解决的吧 问题描述
  • linux alien命令将deb安装包和rpm安装包进行相互转换

    alien命令作用 alien是一个用于在各种不同的Linux包格式相互转换的工具 其最常见的用法是将 rpm转换成 deb 或者反过来 alien命令安装 Debian系linux可使用下面命令安装alien sudo apt get i
  • 分享一下我做软件测试这些年的心路历程,以及软件测试的发展方向。

    为什么入软件这行 很多人问我 一个女孩子做这个不太好 做不长久 特别年龄大了更不好做 我只是很随意的说专业对口 我能说是看上这个行业的高工资和技术范么 这样太俗了 然而就是这个俗气的理由让我走上这一条路 且想一直走下去 为什么呢 一是因为做
  • Circuit Board

    http acm zju edu cn onlinejudge showProblem do problemCode 164 On the circuit board there are lots of circuit paths We k