AtCoder Beginner Contest 218 D - Rectangles

CSP-J初赛模拟试题及答案 (1)判断题16. 输入的n等于1001时,程序不会发生下标越界。(X)17. 输入的a[i]必须全为正整数,否则程序将陷入死循环。(X)18. 当输入”5 2 11 9 16 10”时,输出为”3 4 3 17 5”。(X)19. 当输入为”1 511998“时,输出为”18”。(√)20. 将源代码中g函数的定义(13-16行)移到main函数的后面,程序可以正常编译运行。(X)单选题21. 当输入为”2 -65536 2147483647”时,输出为(B)。(2)判断题。 阅读详情

题目大意

平面上有n个点,问你这n个点能组成多少个四条边都是平行于x轴或y轴的矩形。

思路

对这n个点排序,x小的在前,x相同的时候y小的在前。
然后对于所有xi相同的点,用map记录可能存在的边<yi, yj>的个数,很明显,xi相同的情况下,<yi, yj>是平行于y轴的,如果边<yi, yj> 的个数为m,那么能组成的矩形的个数为C(2m)\binom{2}{m}(m2​),也可以直接理解成m - 1 + m - 2 + … 3 + 2 + 1,即第一条边可以与其后面的m - 1条边组成矩形,第二条边可以与其后面的m - 2条边组成矩形,以此类推,这个方法就是O(n)的了。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
 
unordered_map<pair<int,int>, int>mp;
 
struct node
{
    int x, y;
    bool operator < (node j)
    {
        if(x == j.x)
        {
            return y < j.y;
        }
        return x < j.x;
    }
}p[2005];
 
int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        scanf("%d%d", &p[i].x, &p[i].y);
    }
    sort(p, p + n);
    int ans = 0;
    for(int i = 0; i < n; i++)
    {
        int pos = i + 1; // 找与p[i].x相同的点
        while(pos < n && p[pos].x == p[i].x)
        {
            pos++;
        }
        for(int j = i; j < pos; j++)
        {
            for(int k = j + 1; k < pos; k++)
            {
                int y1 = p[j].y;
                int y2 = p[k].y;
                ans += mp[make_pair(y1, y2)];
                mp[make_pair(y1, y2)]++;
            }
        }
        i = pos - 1;
    }
    printf("%d\n", ans);
    return 0;
}
正方形计数问题(穷举+pair+struct/C++)  正方形计数 count 【问题描述】给定平面上N个点,你需要计算以其中4个点为顶点的正方形的个数。 注意:这里的正方形边不一定需要和坐标轴平行。 【输入格式】 输入文件中仅一行为一个整数N。 接下来的N行,每行有两个整数xi,yi,分别表示N个点的坐标。 【输出格式】 输出文件中仅一行为一个整数,即正方形的个数。 【输入输出样例】 输入: 7 0 0 0 1 1 阅读详情

相关推荐

xjoj316 寻找矩形

Description 在一个XY平面内有若干个点,如果有4个点在一个边平行于坐标轴的矩形的4个顶点上,那么就说四个点构成了一个矩形。现在,给定了平面上n个点。要求出这n个点一共构成了多少矩形。 如下面的四个图:他们分别构成2,3,15,0个矩形。 Input 第一行有一个正整数n(4 以下n行,每一行有两个非负整数X,Y(0 Output 仅有一个数,表示这些点构成的矩

woodbean的专栏 1150

关于一个平面内矩形个数的问题

问题 一个平面内的nnn个点,以这nnn个点为顶点,最多能构成多少个矩形?点的排列是自己决定的。 先说结论:构成矩形的个数,上界是O(n2n)O(n^2\sqrt{n})O(n2n​),下界是Ω(n2)\Omega(n^2)Ω(n2)。 上界 记Ca,bC_{a,b}Ca,b​表示a,ba,ba,b为直径的圆。 对于每一个点pip_ipi​...

dilei7762的博客 770

LVGL v8.3 图片显示与解码缓存实战:PNG 上屏、C 数组与文件双方案

LVGL v8.3 图片两种存储方式、PNG/JPG 上屏解码器挂载、LV_IMG_CACHE_DEF_SIZE 缓存调优、手动预解码头像有效性判断,及"缓存被动画清空"真实踩坑。

汪同学的博客 425

信息学奥赛初赛天天练-32-CSP-J2021阅读程序-冒泡排序、数组去重、二分查找、坐标确定矩形应用

(矩形计数)平面上有n个关键点,求有多少个四条边都和x轴或者y轴平行的矩形,满足四个顶点都是关键点。则 A[i].x,A[j].y 为左上方的红色点,A[j].x,A[i].y为右下方红色的点。2个黑点是对角线,需要确保2黑点的x和y都不相等,只有D选项符合2黑点的x和y都不相等。排好序的数字,相同元素是紧挨着的,当前加入的元素时如果和上一元素相同,需要过滤掉。选B,x不同按x比较,后面参数x大返回true,影响后面排序从小到大。如果通过黑色的2点,可以找到红色的2点,则此4点组成的矩形是长方形。

ya888g 1227

摄像头visio_最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了

原标题:最全面弱电智能VISIO图标集(百个),高大上方案就靠这个了不会用Visio,Visio画拓扑画的很丑,怎么办?本期sin66小编免费分享一份最全面的弱电智能VISIO图标集(百个)给大家,以后画拓扑、做方案,直接高大上起来!需要本期资料直接看文末!!接下来我们一起看一下这些Visio图标大全:我们从下图可以看出前端设备主要是由枪机,筒机,无线摄像头,半球,球机,USB摄像头等构成,对于绘...

weixin_39644915的博客 1万+

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

1. 概述 随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。 HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如

weixin_42967006的博客 4万+

2021CSP入门级第一轮认证详细解析

预计阅读时间:10分钟1.单选题(2分)以下不属于面向对象程序设计语言的是( )。A.C++ B.Python C.Java D.C解析:C语言并非面相对对象,而是面向过程。答案:D2.单选题(2分)以下奖项与计算机领域最相关的是( )。A.奥斯卡奖 B.图灵奖 C.诺贝尔奖 D.普利策奖解析:奥斯卡奖是电影奖,诺贝尔奖是诺贝尔遗嘱里的5个奖,普利策奖是新闻奖,图灵奖是计算机领域的奖项。答案:B3.单选题(2分)目前主流的计算机储存数据最终都是转换成( )数据进行储存。A.二进制 B.十进制 C.八进制 D

Hacket_Xu的博客 6238

华中农业大学C++考试基础练习题

实验一 1 通过日期求某月的天数。 输入日期的年份和月份,求该月有多少天。提示:对于月份为1、3、5、7、8、10、12的月份天数为31,月份为4、6、9、11的月份天数为30,月份为2时要结合年份考虑闰年的情况。 输入描述 输入两个正整数y和m分别表示年份和月份。 输出描述 如果y和m满足条件:1900<=y<3000,0<m<13,输出该月的天数;否则输出“Input error!”。 输入样例 2010 12 输出样例 31 #include"iostream" using n

雨的博客 1万+

AtCoder Beginner Contest 218 D:Rectangles

题目背景: AtCoder Beginner Contest 218(taskC): 问题描述: We have N distinct points on a two-dimensional plane, numbered 1,2,…,N. Point i (1≤i≤N) has the coordinates (xi,yi).How many rectangles are there whose vertices are among the given points and whose edges a

weixin_52045738的博客 343

传感器模块的电路艺术:从引脚定义到系统集成的设计哲学

本文深入探讨传感器模块的电路设计艺术,从引脚定义到系统集成的完整设计哲学。重点解析电源管理、信号处理及I2C通信协议等核心电路原理,分享多模块协同中的电源架构、信号完整性和接地策略,为硬件工程师提供实用的系统级设计思维与实战案例。

o1p2q3r的博客 223

实证研究之|stata清洗charls数据

stata

qq_45313933的博客 6759

AtCoder Beginner Contest 218 D Rectangles(思维)

题面链接 题意:对于给出的N个点,询问能组成多少个矩形满足该矩形平行X轴和Y轴。 问题分析: 有一道类似的题,给出N个点求有多少个矩形。 首先考虑如何在N个点里面确定矩形,矩形由对角线长度和中心唯一确定,那么只需要枚举N2 计算两个点之间的对角线长度以及中心,就可以计算出所有的矩形数。 好,我们回过头来分析这个题,不难发现只需要以一个轴为平行即可,假设我们平行于X轴,那么枚举点的时候只需要处理Y一样的点,处理他们的距离和中心的X坐标,不难发现当且仅当存在其他的对角线长度相等且中心X也是 该pre_X

weixin_45948940的博客 388

[QMT量化交易小白入门]-三十四、让deepseek分析北京炒家的首板策略后,在打板前增加了选股范围(量化python代码解析)

print(f'开始盘前选股')这行代码定义了一个名为的函数,当调用这个函数时,会首先打印出“开始盘前选股”的信息,表明选股流程正式启动。1、可根据情况增删部分条件,目前盘前选股目前可以选出140多支,比之前全市场监听带宽压力小了很多。2、还可以自行添加其他选股条件,比如换手率计算,炸板可能性检测。3、xtdata的数据是有可能缺失的,自己写策略时,有可能需要剔除,或者从第三方库校正,比如部分股票的流通股数。

木头大左的博客 2698

D - Rectangles(数据处理)

AtCoder Beginner Contest 218 题意 给出n点二维坐标,(在第一象限)。求可以组成多个矩形,要求矩形的四条边都平行于坐标轴。 思路 这题是考察数据的处理,先对x,y坐标从小到大排序。对于x相同的,把所有的y的组合用map记录,mp[make_pair(y1, y2)]++,这种记录方式第一次见,比较新颖。由于是n个不同的点,所以,当x相同时,所有的y的组合不会出现相同的情况。综上,对于任意一组相同的x组成的y的集合,其所有的y的组合在其前面所有相同的x的组成的y的集合中(y1, y

QQ2530063577的博客 306

【网络教程】Ubuntu有线连接消失,无法联网怎么办!(亲测有效!)

文章目录问题描述解决方案 问题描述 今天打开Ubuntu,突然发现无法连接网络,并且打开设置,发现设置里面的网络已经没有了有线连接,只有VPN设置选项,如图 解决方案 按照下列的代码执行即可! # 关闭网路 service NetworkManager stop # 删除NetworkManager缓存文件 sudo rm /var/lib/NetworkManager/NetworkManager.state # 打开网络 service NetworkManager start 运行完

XiaoqiangClub的博客 1万+

博途S7-1500T 使用工艺对象驱动液压轴(含SimaHydTO库)

利用工艺对象控制液压轴位置含PLC控制和仿真程序文档资料下载地址如下:液压比例伺服阀的相关应用知识请参看下面的博客文章:液压位置闭环控制(比例伺服阀应用)_RXXW_Dor的博客-优快云博客。

RXXW_Dor的博客 2898

AtCoder Beginner Contest 218(补题)

C - Shapes 题意: 给定两个图,SSS和TTT,’#'代表图案,‘.’‘.’‘.’代表空,整幅图是N✖NN✖NN✖N的大小,现在问你,能否旋转90°和平移的操作(操作数不限),来把S图中的图案,变成T中的图案 思路: 找到S图和T图中,图案的最左端、右端、上端、下端的坐标,上下左右坐标之外的地方说明都是空地,不用管,此时,此时,把新图(坐标是最左端右端上端下端之中的图),通过旋转,会有4种情况,旋转0,90,180,270,把旋转出来的图,存下来,看T图中是否有上述4种情况之一的图,可以小优

weixin_54699118的博客 493

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[基础]计算几何

一、引言  计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算机科学的一个分支,计算几何主要研究解决几何问题的算法。在现代工程和数学领域,计算几何在图形学、机器人技术、超大规模集成电路设计和统计等诸多领域有着十分重要的应用。在本文中,我们将对计算几何常用的基本算法做一个全面的介绍,希望对您了解

outer of the space 2293

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

矩形

矩形

m0_63683383的博客 615

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POJ 1468 Rectangles【矩形】

                                     POJ 1468 Rectangles                                                         http://poj.org/problem?id=1468   题意  给你n个边平行于坐标轴的矩形,问你有多少个矩形被其他矩形包含?(两个矩形重叠的话也算相互包含...

逐梦者 426

Atcoder C - +/- Rectangle(思维+构造)

题目链接:http://agc016.contest.atcoder.jp/tasks/agc016_c 题解:挺简单的构造,很容易想到的构造方法就是(h*w)的小矩阵里其他值赋值为1,最后一个赋值为(h*w)。这只是最基础的构造,然后 判断count - (H * W - count) * (h * w - 1)(count表示基础构造后正数的个数)是否大于0,如果大于0都可...

awow80285的博客 265

矩形计数

题目大意:在一个以(0,0)为左下角,(w,h)为右上角的矩形内,有n个标记。统计有多少个小矩形,满足端点都在大矩形内的整点上,且平行于x轴和y轴,且这些矩形不包含任何一个被标记的点(包括边界上和端点)。这些矩形可以是退化的矩形(即面积为0)。答案mod 1 000 000 007。w,h ,n 首先将所有的点进行离散化,那么对于每一个枚举出来的矩形(图中加粗矩形),如图,统计出有多少

u010152669的专栏 1467

试题 基础练习 矩形面积交

问题描述   平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。 输入格式   输入仅包含两行,每行描述一个矩形。   在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。 输出格式   输出仅包含一个实数,为交的面积,保留到小数后两位。 样例输入 1 1 3 3 2 2 4...

wnamej的博客 749

平面扫描思想在ACM竞赛中的应用(转载)

Openinx Blog About  平面扫描思想在ACM竞赛中的应用 Jan 1, 2013 说明:以下为本科挫比的比赛论文,写文章的语气都是一副叫兽的调调!          摘要: 平面扫描思想在计算几何,计算机图形学,网格计算等计算机理论领域有广泛的应用。有非常多的经典算法借助平面扫描的思想极大的降低了算法时间复杂度。例如线段相交问题、平

kalilili的专栏 4078

static 的三种用法:C 语言里一个关键字的三张面孔

本文系统讲解 C 语言中 static 关键字的三种用法:修饰局部变量延长生命周期、修饰全局变量与函数限制作用域到本文件。通过一个包含三个文件的完整工程示例对照演示,并从存储期、作用域与链接性三个属性解释其统一原理,最后补充单元测试框架偏爱 static 函数的工程实践。

大模型全栈工程师 · Thanks_ks 313

【数据结构】基于比较的排序算法 - 交换排序

本文介绍交换排序中的冒泡排序与快速排序。冒泡排序通过相邻元素比较交换,实现升序,时间复杂度最坏为O(N²),空间复杂度O(1),稳定且适合小规模有序数据。快速排序采用分治思想,以基准值划分区间,平均时间复杂度O(N log N),空间复杂度O(log N),但不稳定,实际应用中性能优异,可通过随机基准、小区间优化等提升效率。

careathers的博客 340
上一篇: AtCoder Beginner Contest 217 D - Cutting Woods(set + 二分查找)
下一篇: 洛谷-P1171(状压dp)
路过放个屁
博客等级 码龄6年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值