Day5 备战CCF-CSP练习

news/2024/10/12 9:05:25

题目分析

暴力/二维前缀和
暴力就不说了,讲一下优化

二位前缀和,我们将矩形中每一个点都当成前缀和的点,那么,我们只需要将顶点标注一下,就可以利用前缀和的性质画出整个矩形

如图一,蓝色是要画的目标矩形
屏幕截图 2024-09-24 201845.png

那么怎么构建差分数组呢
根据前缀和公式f[i][j] = f[i][j - 1] + f[i - 1][j] - f[i - 1][j - 1] + a[i][j]
其中f[i][j - 1] + f[i - 1][j] - f[i - 1][j - 1]都是以\((i , j)\)为最右下的顶点的矩形面积(差分数组的矩形),问题是我们怎么通过控制顶点的a[i][j]来控制矩阵的大小。

屏幕截图 2024-10-12 084220.png

红色点是矩形的左上角,在此之前的所有点都为\(0\),那么前缀和自然也为\(0\),那么a[x1][y1] = 1,到了橘色点,矩形已经结束了,可是前缀和依然为\(1\),因此a[x2 + 1][y1] = -1,同理另一个橘色点a[x1][y2 + 1] = -1 ,到了紫色点,由于两个橘色点,紫色点的前缀和为\(-1\),所以a[x2 + 1][y2 + 1] = 1

然后推广就可以了,利用前缀和性质,只要不是\(0\)的点就是覆盖的点,求面积即可

构造差分数组 \(\rightarrow\) 前缀和构建矩形 \(\rightarrow\) 再次前缀和求覆盖面积

C++ 代码

#include <bits/stdc++.h>using namespace std;
const int N = 110;int f[N][N];
int n;int main()
{cin >> n;while (n -- ){int a , b , x , y;cin >> a >> b >> x >> y;a ++ , b ++ ;f[a][b] += 1;f[x + 1][b] -= 1 , f[a][y + 1] -= 1;f[x + 1][y + 1] += 1;}for(int i = 1 ; i < N ; i ++)for(int j = 1 ; j < N ; j ++)f[i][j] += f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1];for(int i = 1 ; i < N ; i ++)for(int j = 1 ; j < N ; j ++){if(f[i][j]) f[i][j] = 1;f[i][j] += f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1];}    cout << f[N - 1][N - 1];        }

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

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

相关文章

Win10 小技巧:切换大小写自动提示音

可以给 Caps Lock 键、NumLock 键设置提示音,及时了解输入法状态。在 Win 10 里,我们可以给 Caps Lock 键、NumLock 键设置提示音,及时了解输入法状态。 ‍ 如何设置 按下「Win + I」打开设置,然后搜索「切换」,然后点击「打开粘滞键、切换键、或筛选键时显示消息」: ​ …

常见的内外网文件传输方法 能进前5强的是这几个!

内外网文件传输主要解决哪些问题? 内外网文件传输是指不同隔离网间的文件传输,有些是隔离了内外两个网络,有些会在内部再隔离出多个子网,比如研发网、生产网、测试网等,也可以叫做红区、绿区等安全区域。隔离网间的文件传输主要解决数据安全、传输效率和兼容性问题。 一般…

文件管理方案参考 2024.10.12

原创文章 文件管理方案参考 2024.10.12文件管理方案参考 2024.10.12 说明:此文档中的文件是指手机、平板电脑、笔记本电脑等电子设备在使用过程中新建、接收、重命名、移动、编辑的电子文件。例如:Word文档(.docx)、Excel表格(.xlsx)、Photoshop图片(.jpg)、酷我音乐盒…

画6.0

越来越摆了……

题解 QOJ5048【[ECFinal19K] All Pair Maximum Flow】

题目描述 给你一个 \(n\) 个点 \(m\) 条边的图,它是平面上的正 \(n\) 边形和一些对角线,节点按逆时针方向编号为 \(1\) 到 \(n\)。对角线只可能在节点处相交。每条边有一个容量,求每个点对之间的最大流的和。\(n\leq 200000, m\leq 400000\)。 solution 做法 每次找出边权最…

南沙C++信奥赛陈老师解一本通题 1939:【07NOIP普及组】纪念品分组

​【题目描述】元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内…

SQL注入 浅尝试

情境参加了培训的第七次课, 涉及到了几个信息收集的工具, 这里是第七课的作业题, 及我的解答. (注: 使用本地虚拟机开启dvwa靶场, 10.0.0.155是ubuntu虚拟机的IP, dvwa挂在8080端口上. 登陆后初始化靶场并重新登录. 下列各题都将在靶场不同标签页中练习 复现.)1、在不依赖于DVW…

Invicti v24.10.0 for Windows - Web 应用程序安全测试

Invicti v24.10.0 for Windows - Web 应用程序安全测试Invicti v24.10.0 for Windows - Web 应用程序安全测试 Invicti Standard v24.10.0 – 8 October 2024 请访问原文链接:https://sysin.org/blog/invicti/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgInv…