Luogu1856 [USACO5.5]矩形周长Picture(矩形周长并)
原题链接:https://www.luogu.com.cn/problem/P1856
矩形周长Picture
题目背景
墙上贴着许多形状相同的海报、照片。它们的边都是水平和垂直的。每个矩形图片可能部分或全部的覆盖了其他图片。所有矩形合并后的边长称为周长。
题目描述
编写一个程序计算周长。
如图1所示7个矩形。
如图2所示,所有矩形的边界。所有矩形顶点的坐标都是整数。
输入格式
输入文件的第一行是一个整数N(0<=N<5000),表示有多少个矩形。接下来N行给出了每一个矩形左下角坐标和右上角坐标(所有坐标的数值范围都在-10000到10000之间)。
输出格式
输出文件只有一个正整数,表示所有矩形的周长。
输入输出样例
输入 #1
7
-15 0 5 10
-5 8 20 25
15 -4 24 14
0 -6 16 4
2 15 10 22
30 10 36 20
34 0 40 16
输出 #1
228
题解
跟矩形的面积并类似,也是利用扫描线思想用数据结构维护一维,再按照另一维延伸、进行操作。不过周长的变化不如面积直观,但是经过观察还是可以得出规律的:
- 对于水平的边,添加/删去一条边以后新增的边长是更新前后总的水平线段长度之差的绝对值。
- 对于竖直的边,添加/删去一条边以后新增的边长是水平线段的数量×2×\times 2\times×2×竖直方向移动的距离。
大
Luogu1856 [USACO5.5]矩形周长Picture(矩形周长并)相关推荐
- [洛谷P1856] [USACO5.5]矩形周长Picture
洛谷题目链接:[USACO5.5]矩形周长Picture 题目背景 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长 ...
- 【opencv】轮廓特征(质心,面积,周长,近似轮廓,凸包,凸度,边界矩形,直角矩形,旋转矩形,最小闭合圈,拟合椭圆、直线)
4_9_2_轮廓特征 - OpenCV中文官方文档 找到轮廓的不同特征,例如面积,周长,质心,边界框等. 1. 特征矩 特征矩可以帮助您计算一些特征,例如物体的质心,物体的面积等.请查看特征矩上的维基 ...
- Java6面向对象编程创建一个矩形类, 求周长 面积
package job; /** */ import java.util.Scanner; public class Space { /* 面向对象编程创建一个矩形类, 求周长 面积 */ publi ...
- java输入长和宽输出面积_用Java实现计算矩形的面积与周长
输入长宽,计算出矩形面积与周长. 二.功能设计 编写程序,定义一个矩形类,具有长.宽.面积.周长共四个成员变量,计算面积和计算周长的两个方法,在主类中创建矩形对象,输入长和宽,输出矩形的面积和周长. ...
- 编译矩形的面积和周长
/***编译矩形的面积和周长**///创建矩形周长和面积计算的类 class rectCulate {double length=5,breadth=3; //声明矩形的长度和宽度double are ...
- c++ 求四边形面积和周长_C++中运用类求一个矩形的面积和周长
题目是这样的:/*定义一个矩形类Rectangle,包含:保护数据成员:doubleLength;//矩形的长doubleWidth;//矩形的宽公有成员函数:doubleArea();//计算矩形的 ...
- java计算矩形的面积和周长的方法
在生活中,我们常常需要计算某个矩形的面积和周长,如我们经常用的计算器就是个不错的选择,它可以计算出任意一个矩形的面积和周长.那么,如果你想使用 Java编程语言来计算矩形的面积和周长,你该如何做呢?今 ...
- c++--定义图形抽象类。完成圆形、三角形、矩形的面积和周长计算
c+±-定义图形抽象类.完成圆形.三角形.矩形的面积和周长计算 /*===============================================* 文件名称:abstract.cpp ...
- 定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能
定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能. 求矩形的周长时需要输入矩形的长和宽:求圆的周长时需要输入圆的半径. #include<ios ...
- 编写矩形类 计算矩形面积
编写矩形类 计算矩形面积 public class juxing {int a;int b; juxing(int a,int b){System.out.println("矩形面积s=&q ...
最新文章
- Linux中锚定符号的作用,Linux基础(9)文本处理三剑客之grep
- Linux下mysql ERROR 1045,Mysql无法执行批处理
- Spring Boot 2.x基础教程:使用Flyway管理数据库版本
- 如何用python创建一个下载网站-使用Python下载文件的简单示例
- Qt实现多国语言(即界面翻译)可实时进行切换
- 动态规划 HDOJ2602-Bone Collector-01背包
- 倒数秒跳转页面实现代码。
- 为什么Go没有三元运算符
- C++Singleton的DCLP(双重锁)实现以及性能测评
- Spring入门第二十五课
- 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...
- 道路上下行是什么意思_了解道路禁止符号 春节压岁钱少填罚款
- 拼多多前端岗位笔试试题 问答题部分 2017/8/1
- 第一章 .NET基础-C#基础
- 零基础学python电子书-《零基础入门学习Python》电子书PDF+笔记+课后题及答案免费下载...
- 高频头极化角调整+用什么本振的高频头
- vue的npm run dev做了什么
- java管理员登录_登录界面的java代码,分别有教师登录,管理员登录,学生登录,右边是用户名和密码,见图。...
- cad转excel插件c2e_cad表格转换器2016
- 今天的骑行路线。。。