Atlantis

2023-11-16

点击打开链接

Description

There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe different regions of Atlantis. Your friend Bill has to know the total area for which maps exist. You (unwisely) volunteered to write a program that calculates this quantity.

Input

The input consists of several test cases. Each test case starts with a line containing a single integer n (1 <= n <= 100) of available maps. The n following lines describe one map each. Each of these lines contains four numbers x1;y1;x2;y2 (0 <= x1 < x2 <= 100000;0 <= y1 < y2 <= 100000), not necessarily integers. The values (x1; y1) and (x2;y2) are the coordinates of the top-left resp. bottom-right corner of the mapped area. 
The input file is terminated by a line containing a single 0. Don't process it.

Output

For each test case, your program should output one section. The first line of each section must be "Test case #k", where k is the number of the test case (starting with 1). The second one must be "Total explored area: a", where a is the total explored area (i.e. the area of the union of all rectangles in this test case), printed exact to two digits to the right of the decimal point. 
Output a blank line after each test case.

Sample Input

2
10 10 20 20
15 15 25 25.5
0

Sample Output

Test case #1
Total explored area: 180.00 

TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
这道题在北大上很强大,

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
	double x1,x2,y1,y2;
}g[200];
double x[400],y[400];
int map[250][250];
int main()
{
	int i,j,k,m,n,ww,tt=1,t,x1,x2,y1,y2;
	double sum;
	while(scanf("%d",&m),m)
	{
		t=0;
		for(i=0;i<m;i++)
		{
			scanf("%lf%lf%lf%lf",&g[i].x1,&g[i].y1,&g[i].x2,&g[i].y2);
			x[t]=g[i].x1,y[t++]=g[i].y1;
			x[t]=g[i].x2,y[t++]=g[i].y2;
		}
		sort(x,x+t);sort(y,y+t);
		memset(map,0,sizeof(map));
		for(i=0;i<m;i++)
		{
			for(j=0;j<t;j++)
			{
				if(fabs(x[j]-g[i].x1)<=1e-6)
				{
					x1=j;
					break;
				}
			}
			for(j=0;j<t;j++)
			{
				if(fabs(x[j]-g[i].x2)<=1e-6)
				{
					x2=j;
					break;
				}
			}
			for(j=0;j<t;j++)
			{
				if(fabs(y[j]-g[i].y1)<=1e-6)
				{
					y1=j;
					break;
				}
			}
			for(j=0;j<t;j++)
			{
				if(fabs(y[j]-g[i].y2)<=1e-6)
				{
					y2=j;
					break;
				}
			}
			for(j=x1;j<x2;j++)
			{
				for(k=y1;k<y2;k++)
				{
					map[j][k]=1;
				}
			}
		}
		sum=0.0;
		for(i=0;i<t-1;i++)
		{
			for(j=0;j<t-1;j++)
			{
				if(map[i][j])
				{
					sum+=(x[i+1]-x[i])*(y[j+1]-y[j]);
				}	
			}
		}
		printf("Test case #%d\nTotal explored area: %.2lf\n\n",tt++,sum);
	}
	return 0;
}



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

Atlantis 的相关文章

  • 反转 Python 整数的位

    给定一个十进制整数 例如 65 如何反转 Python 中的底层位 即以下操作 65 01000001 10000010 130 看来这个任务可以分为三步 将十进制整数转换为二进制表示形式 反转位 转换回十进制 第 2 步和第 3 步看起来
  • 禁用复选框上的输入

    需要在取消选中该复选框时禁用输入 并在选中该复选框时启用它 我的代码是这样的 div class y div
  • Javascript - 使数组索引 toLowerCase() 不起作用

    我试图将所有数组索引设置为小写字符串 但它不起作用 我在这里查看了其他答案并尝试了他们的解决方案 例如使用toString 添加之前toLowerCase但它不起作用 这很奇怪 我创建了一个问题的jsfiddlehere https jsf
  • 将数字转换为整数列表[重复]

    这个问题在这里已经有答案了 我该如何写magic下面的函数 gt gt gt num 123 gt gt gt lst magic num gt gt gt gt gt gt print lst type lst 1 2 3
  • Python:随时接受用户输入

    我正在创建一个可以做很多事情的单元 其中之一是计算机器的周期 虽然我将把它转移到梯形逻辑 CoDeSys 但我首先将我的想法放入 Python 中 我将进行计数 只需一个简单的操作 counter 1 print counter 跟踪我处于
  • Swift 2.1- tabBarController!.selectedIndex 返回大整数

    我需要把tabBarController selectedIndex常量内的数字 我期望一个介于 0 和 3 之间的数字 具体取决于我选择的选项卡 但我得到的数字如下2147483647 有什么想法吗 代码是 let selectedTab
  • 如何从普通 JavaScript 中的输入获取对象

    例如 我有 3 个输入
  • MySQL 错误 1264:列的值超出范围

    As I SETMySQL 中的 cust fax 表如下所示 cust fax integer 10 NOT NULL 然后我插入这样的值 INSERT INTO database values 3172978990 但随后它说 错误 1
  • 如何在fortran 90中生成[0,5]范围内的整数随机数?

    我对 Fortran 编程有点陌生 任何人都可以帮我解决问题吗 我在生成整数随机数时遇到问题 在 Fortran 随机数范围 0 5 中使用 random seed 和 rand 为了支持answer https stackoverflow
  • JQuery 找不到我的元素。为什么?

    更新 愚蠢的我没有注意到案例不准确 我为此苦苦挣扎了 30 多分钟 而你们在不到 5 分钟的时间里就看到了我的问题 感谢您为我节省了很多悲伤 无论如何 我对编程还是个新手 我需要学习如何留意这样的小事情 但非常感谢 它甚至没有闪过我的脑海
  • 对相当大的整数的大集合的操作的快速实现

    描述 我实现了以下类 LabSetInt64 参见下面的代码 这里的目标是尽可能快地操作大量大整数 最多 10M 的值 我的主要要求集中在 至关重要 尽快获取集合的大小 基数 重要 能够非常快速地迭代一组集合 所以 从下面的实现开始 我还有
  • 单击时删除输入文本的默认值

    我有一个输入文本
  • 处理小数字和准确性

    我有一个程序 可以处理很多非常小的数字 接近双极限的下限 在我的应用程序执行期间 其中一些数字逐渐变小 这意味着它们的 估计 不太准确 我目前的解决方案是在进行任何计算之前将它们放大 然后再次缩小 但这让我思考 这样做是否真的获得了更多的
  • 如果我的编译器不支持 C 或 C++ 中的 128 位整数加法和减法?

    我正在为 128 位数字的长流编写一个压缩器 我想将数字存储为差异 仅存储数字之间的差异而不是数字本身 因为我可以将差异打包在更少的字节中 因为它们更小 然而 为了压缩 我需要减去这些 128 位值 为了解压缩 我需要添加这些值 我的编译器
  • Arduino 上的串行消息到整数

    我希望我的 Arduino 通过串行通信接收一个整数 你能帮我解决这个问题吗 它应该是这样的形式 int value strtoint Serial read 有多种方法可以读取整数Serial 很大程度上取决于数据发送时的编码方式 Ser
  • 四个无符号整数的哈希函数 (C++)

    我现在正在编写一个程序 它生成四个无符号 32 位整数作为某个函数的输出 我想对这四个整数进行哈希处理 这样我就可以将该函数的输出与未来的输出进行比较 不过 我在编写一个像样的哈希函数时遇到了麻烦 当我最初编写这段代码时 我对四个整数分别进
  • 在 Angularjs 中格式化输入值

    我正在尝试编写一个指令 自动格式化数字
  • Angular - CSS - 自定义类型=文件输入,如何使用按钮而不是标签?

    我制作了一个类型为 file 的自定义输入字段 因为我不喜欢默认的输入字段 为了实现这一目标 我做了
  • 无法在 Visual Studio Code 的 C# 输出上键入任何内容

    所以我试图在 vscode 上运行一个非常基本的 C 程序 代码如下 using System namespace HelloWorld class Program static void Main string args string N
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会

随机推荐

  • Gated Mechanism for Attention Based Multi Modal Sentiment Analysis 阅读笔记

    GATED MECHANISM FOR ATTENTION BASED MULTIMODAL SENTIMENT ANALYSIS 阅读笔记 最近在跟进多模态的情感分析发现多模态榜一又被刷下来了 这篇论文是当前时间内的最好的效果 下面就对论
  • linux服务器补丁怎么修复,linux 服务器打补丁

    linux 服务器打补丁 内容精选 换一换 MindStudio和Ascend cann toolkit开发套件包可以安装在Linux服务器上 可以使用Linux服务器上原生桌面自带的终端gnome terminal进行安装 也可以在Win
  • Python数据挖掘-机器学习

    目录 零 概念 算法 开发流程 一 机器学习概述 1 数据集 1 sklearn自带数据集应用 2 数据集划分 二 特征工程 1 特征抽取 1 字典特征提取 sklearn feature extraction DictVectorizer
  • windows下修改mysql时区设置

    root身份登录MySQL mysql u root p 查看time zone变量 show variables like time zone 显示 time zone 变量 设置time zone变量 set time zone 08
  • dobbo源码解析目录地址

    肥朝 Dubbo 源码解析 作者 肥朝 博客 http www jianshu com u f7daa458b874 目录 Dubbo 源码解析 集群容错架构设计 Dubbo 源码解析 Directory Dubbo 源码解析 Router
  • 模糊匹配之——BK树与拼写纠正

    介绍 拼写纠错功能常常出现在比较高级的文本编辑应用中 例如大家熟知的word 高级一点的IDE例如Jet Brains系列 在一些在线翻译上 也有自动校正拼写的功能 例如谷歌翻译 原理 拼写纠正的实现方式有多种 这里使用的是一种名为BK树的
  • 【Java项目推荐】值得写到简历上的项目--黑马点评

    优惠卷秒杀 前言 优惠券秒杀 实现优惠券秒杀下单 超卖问题 一人一单 分布式锁 redis中加锁的一些特殊情况 手动实现分布式锁 分布式锁误删情况1 分布式锁误删情况2 lua脚本解决多条命令的原子性问题 Redisson 秒杀优化 异步秒
  • Mac使用Python接入东方财富量化接口Choice,调试与获取数据

    这篇博客用来把在Mac平台上使用python接入东方财富Choice接口的流程细化并重写 官方文档有些地方说的太含糊了 有的地方博主尝试了多种方法才试出来 这里直接把标准答案给到大家 尽量避坑吧 吐槽 同花顺科技感很足 赞 但是没有Mac版
  • 什么是虚拟键码、虚拟密钥码、扫描码

    虚拟键码 虚拟密钥码 扫描码
  • spring_boot-启动错误笔记

    2018 07 15 17 15 42 443 INFO 10892 restartedMain s b a e w s WebMvcEndpointHandlerMapping Mapped actuator health methods
  • ElementUI tabs标签页样式改造美化

    今天针对ElementUI的Tabs标签页进行了样式修改 更改为如下图所属的样子 在线运行地址 JSRUN项目 ElementUI tabs标签页样式改造 大家如果有需要可以拿来修改使用 下面我也简单的贴上代码 代码没有注释 很抱歉 时间比
  • python的运行方式有哪两种 有何区别_python程序的两种运行方式是什么

    python程序的两种运行方式是什么 第一种方式 REPL 所谓REPL即read eva print loop 读取 计算 打印 循环 实现REPL运行方式有以下两种 1 IDLE 集成开发环境或集成开发和学习环境 是Python的集成开
  • 在ESXi安装ubuntu中,ubuntu20.04是LVM管理的,lvm盘只有识别100G ,需扩展逻辑卷来使用更多的空间

    sudo fdisk l Device Start End Sectors Size Type dev sda1 2048 4095 2048 1M BIOS boot dev sda2 4096 4198399 4194304 2G Li
  • SpringCloud中Hystrix中熔断器的简单配置和调用

    SpringCloud中Hystrix组件 用于在云环境中远程调用方法失败后的处理机制 它通过配置一个处理类实现接口重写其方法提供调用失败后的紧急处理 是一个非常好用的组件 1 首先在没有配置熔断器之前启动项目访问 只启动了一个模块 注册中
  • docker dbus-x11

    本来想用terminator启动nvidia docker 显示出图形界面的 结果发现启动的时候出问题了 terminator 1 dbind WARNING 07 31 53 725 Couldn t connect to accessi
  • Java接口登录实现页面跳转

    方式一 在Java中 可以通过使用接口和实现类来实现页面跳转功能 以下是一个简单的示例代码 首先 创建一个接口 例如LoginService public interface LoginService void login String u
  • linux设备驱动归纳总结(六):1.中断的实现

    一 什么是中断 中断分两种 1 中断 又叫外部中断或异步中断 它的产生是由于外设向处理器发出中断请求 其中外部中断也有两种 这是由配置寄存器设定的 普通中断请求 IRQ 和快速中断请求 FIQ 一般地 linux下很少使用快速中断请求 2
  • OVP电路应用(一)_12V电源_DIO1280

    目录 前言 一 基本信息 二 基本电气特性 1 PIN定义 2 电气特性 3 OVP值的设置 4 时序 5 其他 三 实际设计案例 1 电路原理图 PCB Layout 2 测试 3 问题与对策 四 USB的VBUS应用 其他举例 1 电路
  • 关于DecimalFormat类的数字格式化

    文章目录 基本格式化 不同特殊符号代码的格式 不同符号的使用 当我们遇到小数时 必定会设置保留小数的位数 也可能会涉及数字的格式转换 那么在Java中肯定也有这样的一个类 就是DecimalFormat类能帮助我们方便快捷的解决此类小数格式
  • Atlantis

    点击打开链接 Description There are several ancient Greek texts that contain descriptions of the fabled island Atlantis Some of