【CSP认证考试】202303-1:田地丈量解题思路+代码

news2024/12/29 10:33:39

问题描述

西西艾弗岛上散落着 n 块田地。每块田地可视为平面直角坐标系下的一块矩形区域,由左下角坐标 (x1,y1) 和右上角坐标 (x2,y2) 唯一确定,且满足 x1<x2、y1<y2。这 n 块田地中,任意两块的交集面积均为 0,仅边界处可能有所重叠。

最近,顿顿想要在南山脚下开垦出一块面积为 a×b 矩形田地,其左下角坐标为 (0,0)、右上角坐标为 (a,b)。试计算顿顿选定区域内已经存在的田地面积。

输入格式

从标准输入读入数据。

输入共 n+1 行。

输入的第一行包含空格分隔的三个正整数 n、a 和 b,分别表示西西艾弗岛上田地块数和顿顿选定区域的右上角坐标。

接下来 n 行,每行包含空格分隔的四个整数 x1、y1、x2 和 y2,表示一块田地的位置。

输出格式

输出到标准输出。

输出一个整数,表示顿顿选定区域内的田地面积。

样例输入

4 10 10
0 0 5 5
5 -2 15 3
8 8 15 15
-2 10 3 15

样例输出

44

 

思路:

先按格式定义输入顶点位置就好,接着就是通过观察可以发现我们要求的矩形交叉面积就是对应两个大矩形左边界的较大值、右边界的较小值相减为一个边长,上边界的较小值、下边界的较大值相减为另一个边长,再将两边长相乘即可得到一个矩形的面积,依次将计算得到的矩形面积相加即可。

代码:

#include <iostream>
using namespace std;
int main()
{
    int n, a, b;
    int x1, y1, x2, y2;
    int x, y;
    int sum = 0;
    cin >> n >> a >> b;
    for(int i = 1; i <= n; i++){
        cin >> x1 >> y1 >> x2 >> y2;
        x = min(a, x2) - max(0, x1);
        y = min(b, y2) - max(0, y1);
        if(x >= 0 && y >= 0)
            sum += x * y;
    }
    cout << sum;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vcruntime140.dll文件下载安装方法以及一些注意事项

其实vcruntime140.dll文件是Microsoft Visual C Redistributable Packages for Visual Studio 2015中的一个重要组件。它包含了Windows操作系统和其他应用程序所需的函数和资源&#xff0c;以确保它们能够正常运行。本文将为你介绍vcruntime140.dll文件的下载、使用以及解决常见…

java boolean占用内存是多少

一&#xff0c;结论 关于boolean占用内存是多少&#xff0c;我在JVM规范中找到以下解释&#xff0c;但是怎么验证呢&#xff1f; 虚拟机没有给boolean(布尔)类型设置单独指令。boolean型的数据是有integer指令&#xff0c;包括interger返回来处理的。boolean型数组则是用byte…

嵌入式开发会成为下一个Java吗?

今日话题&#xff0c;嵌入式开发会成为下一个Java吗&#xff1f;答案是否定的。嵌入式开发岗位通常属于制造业&#xff0c;特别是电器、机械、装备、航空航天等“智能制造”领域&#xff0c;属于重资产行业&#xff0c;相对稳定&#xff0c;不像互联网那样灵活。如果你有兴趣进…

FastDFS修改文件存储目录

修改下面文件&#xff0c;相关参数为1&#xff0c;则最终只保留1个目录&#xff0c;目录为00/00。 vi /etc/fdfs/storage.conf vi /storage.conf vi /fastdfs-5.11/conf/storage.conf

【Java|golang】337. 打家劫舍 III---树上最大独立集

详细视频: link 除了 root 之外&#xff0c;每栋房子有且只有一个“父“房子与之相连。一番侦察之后&#xff0c;聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 两个直接相连的房子在同一天晚上被打劫 &#xff0c;房屋将自动报警。 给定二叉树的 roo…

在线文件二维码制作技巧,支持多种文件格式

怎么把一个文件放到二维码中呢&#xff1f;在日常工作中&#xff0c;使用办公文件多以word、excel、ppt等格式的文件为主&#xff0c;那么怎么把这些格式的文件生成二维码使用是很多小伙伴关注的一个问题。那么就让小编来给大家分享一招&#xff0c;通过浏览器来在线制作二维码…

上传项目到github上

在github上先创建一个空仓库 在github上新建一个仓库&#xff0c;点击你的头像&#xff0c;然后在出来的侧边栏选择 Your repositories 点击New创建一个新的仓库&#xff0c;即repository 输入你的仓库名称&#xff0c;选择public 或者 private. 尽量不要勾选README 如果你的…

微信小程序环境搭建

一、微信开发者工具 1. 微信公众平台注册小程序 注册类型选择‘个人’即可&#xff0c;‘企业’需要公司相关信息&#xff08;企业信用代码、法人信息等&#xff09;。 若只是学习阶段&#xff0c;忽略这步&#xff0c;使用测试号即可。 注册成功后&#xff0c;在‘开发’-…

【任务调度框架】「分析技术指南」带你一同盘点一下常用的任务调度框架的方案和原理开发指南

带你一同盘点一下常用的任务调度框架的方案和开发指南 任务调度JDK原生任务调度Java.Util — Timer&#xff08;单线程&#xff09;/ TimerTask&#xff08;任务调度&#xff09;Java.Util.Concurrent — 任务调度线程池 Spring任务调度机制Quartz任务调度机制简单的使用流程Tr…

精品SpringCloud图书馆管理系统-微服务-分布式

《[含文档PPT源码等]精品基于SpringCloud实现的图书馆管理系统的设计与实现-微服务-分布式》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;springcloud JDK版本&…

【力扣-每日一题】337. 打家劫舍 III

class Solution { public:pair<int,int> dfs_rob(TreeNode *root){//如果为根节点if(rootnullptr)return {0,0};auto [l,l_n]dfs_rob(root->left);auto [r,r_n]dfs_rob(root->right);int ol_nr_nroot->val;//当前节点偷&#xff0c;所获得的利益,子节点不能偷in…

第二章 交换基础

目录 2.1 交换机概述 2.1.1 交换机的定义 2.1.2 交换机的接口 2.1.3 交换机的互连方式 2.1.3.1 级联 2.1.3.2 堆叠 2.1.4 交换机工作原理 2.1.4.1 转发 2.1.4.2 过滤 2.1.4.3 扩散 2.1.4.4 广播 2.1.4.5 源地址学习 2.1.5 交换机的作用 2.2 交换机作用仿真 2.2.…

Excel 通过条件格式自动添加边框

每录入一次数据就需要手动添加一次边框&#xff0c;非常麻烦&#xff0c;这不是我们想要的。 那么有没有办法&#xff0c;在我们录入数据后&#xff0c;自动帮我们加上边框呢&#xff1f; 选中要自动添加边框的列&#xff0c;然后按箭头流程操作 ↓ ↓ ↓ ↓

基于DSPACE功率平衡理论的并联有源电力滤波器模型(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python如何操作mysql数据库

目录 python操作mysql数据库 怎么提高效率 注意事项 总结 Python 是一种流行的编程语言&#xff0c;它提供了许多库和工具来操作 MySQL 数据库。在 Python 中&#xff0c;你可以使用诸如 pymysql、mysql-connector-python、SQLAlchemy 等库来与 MySQL 数据库进行交互。这些…

微信公众号小说系统源码 漫画系统源码 可对接微信公众号 APP打包 对接个人微信

源码描述&#xff1a;修复版掌上阅读小说源码_公众号漫画源码可以打包漫画app ■产品介绍 掌上阅读小说源码支持公众号、代理分站支付功能完善强大的小说源码&#xff0c;公众号乙帅读者&#xff0c; 可以对接微信公众号、APP打包。支持对接个人微信收款。 ■产品优势 1新…

解决Permission is not allowed后基于Ubuntu23.04安装配置docker与docker-compose

参考&#xff1a;Docker官网-Install Docker Engine on Ubuntu 一、 Install using the Apt repository 1.1 Set up Docker’s Apt repository 1.1.1 Add Docker’s official GPG key # Add Dockers official GPG key: sudo apt-get updatesudo apt-get install ca-certifi…

【AI视野·今日Sound 声学论文速览 第六期】Mon, 18 Sep 2023

AI视野今日CS.Sound 声学论文速览 Mon, 18 Sep 2023 Totally 1 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Audio-Visual Active Speaker Extraction for Sparsely Overlapped Multi-talker Speech Authors Junjie Li, Ruijie Tao, Zexu Pan, Meng…

解决express服务器接收post请求报错:“req.body==> undefined“

现象如下&#xff1a; 解决办法&#xff1a;在代码中加入body-parser解析 const bodyParser require("body-parser"); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); 参考&#xff1a; How to fix "req.body undefined&q…

buuctf-[极客大挑战 2019]HardSQL

很久没做sql了。。 打开这题&#xff0c;还想拿sqlmap跑&#xff0c;但是没跑出来&#xff0c;要手注了 先用万能密码登了一下 回显&#xff0c;是有爆东西的 然后就想到先用bp fuzz字典跑一下 就看到等号被过滤了&#xff0c;要用like来过滤 然后就去搜了很多用like过滤的…