CCF-CSP真题《202303-1 田地丈量》思路+python,c++,java满分题解

2023-11-01

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全

试题编号: 202303-1
试题名称: 田地丈量
时间限制: 1.0s
内存限制: 512.0MB
问题描述:

问题描述

西西艾弗岛上散落着 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

Data

样例输出

44

Data

样例解释

如图所示,选定区域内田地(绿色区域)面积为 44。

子任务

全部的测试数据满足 n≤100,且所有输入坐标的绝对值均不超过 104。

真题来源:田地丈量

 感兴趣的同学可以如此编码进去进行练习提交

思路讲解:

        本题主要是求所圈的矩阵和其他已有矩阵的交集面积,交际面积的右边界即两个相交矩阵的最右边的边界,即min(a, points[i][2]),左边界即两个相交矩阵的最右边的边界,即max(0, points[i][0])。上下边也是一样的道理。通过判断x 和 y是否大于零,可以判断出矩阵十分交叉,若存在则 sum += x * y;

python满分题解:

n, a, b = map(int, input().split())
points = [[i for i in map(int, input().split())] for j in range(n)]
sum = 0
for i in range(n):
    x = min(a, points[i][2])-max(0, points[i][0])
    y = min(b, points[i][3])-max(0, points[i][1])
    if x>=0 and y>=0:
        sum += x*y
print(sum)

运行结果:


 c++满分题解:

#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;
}

 运行结果:


Java满分题解:

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
    	Scanner in = new Scanner(System.in);
    	int n = in.nextInt();
    	int a =in.nextInt();
    	int b = in.nextInt();
    	int[][] x = new int[n+1][3];
    	int[][] y = new int[n+1][3];
    	int sum = 0;
    	for( int i = 1; i <= n; i++ ) {
    		for( int j = 1; j <= 2; j++ ) {
    			x[i][j] = in.nextInt();
        		y[i][j] = in.nextInt();
    		}
    	}
    	for( int i = 1; i <= n; i++ ) {
    		int x2 = Math.min( x[i][2] , a);  //最上方的边
    		int x1 = Math.max(x[i][1], 0);    //最下方的边
    		int y1 = Math.max(y[i][1], 0);  //最左侧的边
    		int y2 = Math.min( y[i][2] , b);    //最右侧的边
    		if( x2 > x1 && y2 > y1 ) {
    			sum += ( x2 - x1 ) * ( y2 - y1 );
    		}
    	}
    	System.out.print(sum);
    }
    
}

  运行结果:

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

CCF-CSP真题《202303-1 田地丈量》思路+python,c++,java满分题解 的相关文章

  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 在 Spring MVC 中将请求写入文件

    我希望能够将整个请求写入 Spring MVC 控制器中的文件 我已尝试以下操作 但即使我使用大量参数发出 POST 请求 文件也始终为空 RequestMapping method RequestMethod POST value pay
  • 如果 Modelmapper 中的整个属性为空,如何排除它们

    ModelMapper 是否 http modelmapper org http modelmapper org 支持什么排除属性 如果该值为空 我刚刚找到了 PropertyMap 但这对我来说是一种限制 因为我必须描述我想要的特定属性
  • 文件加密与解密问题

    我一直在尝试在 VC Express 2010 中加密和解密文件 我见过的所有教程和文档都需要两个FileStreams 来加密文件 一个用于读取未加密的版本 另一个用于加密 当我实际编写代码时 它不断抛出错误 告诉我它无法打开该文件 因为
  • 这些工作队列标志意味着什么?

    在研究工作队列时 我遇到了内核中定义的工作队列标志和常量 我有以下我无法理解的疑问 这里的排水和救援到底是什么意思 WQ DRAINING 1 lt lt 6 internal workqueue is draining WQ RESCUE
  • 如何更改 JAX-WS Web 服务的地址位置

    我们目前已经公开了具有以下 URL 的 JAX RPC Web 服务 http xx xx xx xx myservice MYGatewaySoapHttpPort wsdl http xx xx xx xx myservice MYGa
  • 在 Windows 上使用 C/C++ 开发时省略 msvcr100.dll?

    是否可以在 Windows 上使用 C C 进行开发而不链接到 msvcr100 dll 我知道这是 Windows 的标准 c 库 但我想知道如果我没有安装 Visual Studio 或 Redistributable 软件包 我的计算
  • List 或其他类型上的 string.Join

    我想将整数数组或列表转换为逗号分隔的字符串 如下所示 string myFunction List
  • 使用联合对 IP 地址进行多种解释?

    在工作中 我们使用以下构造来将 IP 地址解释为 4 字节数组或 32 位整数 union IPv4 std uint32 t ip std uint8 t data 4 这很好用 但是读完这本书的第 97 章 不要使用联合来重新解释表示
  • 无法使用python和beautifulsoup抓取网页中的某些href

    我目前正在使用 Python 3 4 和 bs4 爬取网页 以收集塞尔维亚在里约 2016 年的比赛结果 所以网址here http rio2016 fivb com en volleyball women teams srb serbia
  • 文本框中“结束编辑”的事件

    我正在 winform c 中使用文本框 并使用文本在数据库中进行查询 但每次文本更改时 我都需要不断查阅文本框的文本 因此 对于这些 我使用 KeyUp 但这个活动太慢了 文本框编辑完成后是否会触发任何事件 我考虑完成2个条件 控制失去焦
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • DataFrame 对象没有属性“sort_values”

    dataset pd read csv dataset csv fillna 100 dataset Id 0 dataset i 0 dataset j 0 entries dataset dataset Id 0 print type
  • 使用 WinAPI 连接禁用的显示设备

    我的问题是启用禁用的监视器ChangeDisplaySettingsEx 我想这不是火箭科学 但经过一番挖掘后 它看起来仍然是不可能的 我找到了一种根据找到的 Microsoft 代码示例禁用所有辅助显示器的方法here https msd
  • 使用方法的状态模式

    我正在尝试使用方法作为状态而不是类来基于状态模式的修改版本来实现一个简单的状态机 如下所示 private Action
  • 对象对于所需数组来说太深 - scipy.integrate.odeint

    我昨天刚开始使用Python 使用时遇到错误scipy integrate odeint 我定义了一个函数 def SIR x t beta gamma mu M 这需要numpy array物体x t and M 标量浮动beta gam
  • JPA ManyToMany 产生的空联接表

    我有一个应用程序 其中我尝试使用 Hibernate 作为 JPA 提供程序来实现两个实体之间的多对多关系 我正在尝试的例子是一个单向的 其中一个相机可以有多个镜头 而镜头可以安装到多个相机中 以下是我的实体类 只需粘贴其中的相关部分 Ca
  • Graphics2D setfont() 严重减慢了 java 应用程序的启动速度

    我正在用java制作一个游戏 它每秒刷新60次 每次执行循环时 我都会使用 g2d 来绘制图像和字符串 如果我这样做的话一切都会很好g2d setFont new Font Arial Font PLAIN 8 和抽绳 这将是正常的 但如果
  • 评估 df 每行中的日期时间函数是否落在另一个 df 中的日期时间范围内

    我是 python 新手 需要一些帮助来解决有关日期时间函数的问题 I have df a其中有一列标题为time 我正在尝试创建一个新专栏id在这个df a 我想要id根据时间是否包含在某个时间范围内来确定的列df b date 和 da
  • 是否可以检测流是否已被客户端关闭?

    简要介绍一下情况 我有一项服务可以通过套接字接收信息并发送回复 连接不安全 我想设置另一个可以为这些连接提供 TLS 的服务 这个新服务将提供单个端口并根据提供的客户端证书分发连接 我不想使用 stunnel 有几个原因 其中之一是每个接收

随机推荐

  • Idea 激活插件IDEA Eval Reset食用

    在setting中的Plugins中点击设置小图标 点击第一个选项 添加远程仓库 2 点击 号 输入 https plugins zhile io 3 搜索 IDEA Eval Reset 安装 4 Help gt Eval Restart
  • 短短半小时 创建自己的个性操作系统

    短短半小时 创建自己的个性操作系统 邹震 大家认为桌面使用比较困难 但是前段时间推出一款Whitefin 而且可以在半小时内自己创建个性操作系统 今天我们采访一下 熊伟 先生 熊伟 先生您好 我们想请您谈一下Whitefin这个的来源 熊伟
  • 分数构造方法java,Java--构造方法

    1 构造方法 类中的特殊方法 主要用于创建并初始化对象 2 特点 构造方法的名称与类名完全相同 没有返回值类型 定义的时候不用写 void 普通方法没有返回值的时候 要写void 创建对象时 触发构造方法的调用 不可以通过句点手动调用 方法
  • Typescript学习——接口

    接口 interface TypeScript 的核心原则之一就是对 值 所具有的结构进行类型检查 而接口的作用就是为这些类型命名或为你的第三方代码定义契约 相当于定义了值的类型 用法 const foo params name strin
  • C语言: 数组指针/指针数组等相关的选择题目

    文章目录 写在前面 形参和实参 二维数组传参 字符数组 二维数组 函数指针数组 参数匹配 多级指针 写在前面 本篇总结的是和指针相关的有难度的选择题 并对这些题进行解析和分析 形参和实参 下面程序的运行结果是什么 include
  • C/S和B/S的区别和优缺点

    一 CS BS架构定义 1 C S Client Server 客户端 服务器结构 C S结构在技术上很成熟 它的主要特点是交互性强 具有安全的存取模式 网络通信量低 响应速度快 利于处理大量数据 因为客户端要负责绝大多数的业务逻辑和UI展
  • 关于Python爬虫Xpath的一切都在这里了

    Xpath是python爬虫过程中 非常重要的一种用来定位的语法 PART 01 开始使用 首先我们需要得到一个 HTML 源代码 用来模拟爬取网页中的源代码 先下载lxml 包 pip install lxml 准备HTML源代码 fro
  • DMA基本原理

    常用的外设DMA使能库函数 DMA基本原理 1 作用 为CPU减负 2 DMA框图 3 1 每个通道都直接连接专用的硬件DMA请求 都支持软件触发 这些通过软件来配置 2 在七个请求间的优先权可以通过软件编程设置 共有四级 很高 高 中等和
  • 批处理隐藏自身窗口

    转载自 批处理隐藏自身窗口 大多数时候 使用批处理执行一些任务 但是批处理的黑色命令窗口会一直存在很烦人 可以通过两种方式 隐藏bat脚本 方法1 直接在 bat 文件最前边加上以下内容 echo off if 1 h goto begin
  • VPython三维仿真(NO.4) 创建坐标系

    目录 目的 画坐标系方法 画坐标系代码 坐标系效果图 纠正飞机坐标系 源代码 目的 在后续的章节中 飞机或其他模型需要参照物才能明白模型是如何运动的 本节介绍建立笛卡尔坐标系的方法 画坐标系方法 使用VPython的圆柱体 cylinder
  • java 限流策略

    概要 在大数据量高并发访问时 经常会出现服务或接口面对暴涨的请求而不可用的情况 甚至引发连锁反映导致整个系统崩溃 此时你需要使用的技术手段之一就是限流 当请求达到一定的并发数或速率 就进行等待 排队 降级 拒绝服务等 在限流时 常见的两种算
  • ASP.NET Core 中获取客户端(Client)IP的方法

    简介 本文主要介绍ASP NET Core中获取客户端 Client IP的方法代码 以及负载均衡的情况获取客户端IP 1 第一种方法 1 在Startup cs中ConfigureSerivces中配置 services Configur
  • 软件测试----性能测试

    性能测试 通过性能测试工具模拟正常状态 峰值状态及异常负载状态下对系统的各项性能指标进行测试的一系列活动验证软件系统是否达到了用户期望的性能需求 同时发现系统中可能存在的性能瓶颈及缺陷进而进行优化 性能测试的目的 1 验证系统性能是否满足预
  • C# 操作CAD报错【COMException (0x8001010A)消息筛选器显示应用程序正在使用中】的一种处理方式

    C 操作CAD报错 COMException 0x8001010A 消息筛选器显示应用程序正在使用中 使用了dynamic关键字依然无法解决 程序运行了5次可能出现3次此错误 网上搜索了很多方法都没有用 于是使用了do while循环解决此
  • 【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘

    出现场景 在微信小程序开发中 使用真机调试的时候 出现这个错误 解决方式 将真机调试由2 0切换到1 0 原因 开放社区中大佬的评论 真机调试一直报错 no such file or directory access 微信开放社区
  • BUUCTF-Misc部分

    二维码 附件压缩包下载下来是一个二维码图片 直接用工具查看 并没有直接给出flag 猜测是压缩包文件 使用winhex查看 明显的提示pk 压缩文件 可以用binwalk命令分离文件 也可以直接修改后缀 部分可能会存在损坏文件的问题 先复制
  • JAVA 获取实时汇率

    聚合数据中有很多我们会用到的数据 下面是获取实时汇率的方式 key值聚合数据注册后可获取 需要练习借用的 请评论回复 public void exchangeRate String urlIDR http op juhe cn onebox
  • 安装pip3

    安装pip3 yum install epel release yum install python36 y yum install python36 setuptools easy install 3 6 pip
  • uniapp之小程序setData迁移

    uniapp修改data中的值 第一次用uniapp 踩坑了 坑1 不能用this setData 得用this set 对象 属性名 值 坑2 data的属性得用this data做目标对象 贴上代码 export default dat
  • CCF-CSP真题《202303-1 田地丈量》思路+python,c++,java满分题解

    想查看其他题的真题及题解的同学可以前往查看 CCF CSP真题附题解大全 试题编号 202303 1 试题名称 田地丈量 时间限制 1 0s 内存限制 512 0MB 问题描述 问题描述 西西艾弗岛上散落着 n 块田地 每块田地可视为平面直