首页 > 编程语言 >CSP-J 2021 初赛试题解析(第三部分:完善程序(2))

CSP-J 2021 初赛试题解析(第三部分:完善程序(2))

时间:2024-08-30 09:26:34浏览次数:11  
标签:return point int mid 初赛 id ++ 2021 CSP

完善程序二完整程序代码

#include <iostream>

using namespace std;

struct point{
    int x, y, id;
};
bool equals(point a, point b){
    return a.x == b.x && a.y == b.y;
}
bool cmp(point a, point b){
    return a.x != b.x ? a.x < b.x : a.y< b.y;
}
void sort(point A[], int n){
    for (int i = 0; i < n; i++)
        for (int j = 1; j < n; j++)
            if (cmp(A[j], A[j - 1])){
                point t = A[j];
                A[j] = A[j - 1];
                A[j - 1] = t;
            }
}
int unique(point A[], int n){
    int t = 0;
    for (int i = 0; i < n; i++)
        if ( t == 0 || !equals(A[i], A[t -1]))
            A[t++] = A[i];
    return t;
}
bool binary_search(point A[], int n, int x, int y){
    point p;
    p.x = x;
    p.y = y;
    p.id = n;
    int a = 0, b = n - 1;
    while (a < b){
        int mid = (a + b) >> 1;
        if (cmp(A[mid], p))
            a = mid + 1;
        else 
            b = mid;
    }
    return equals(A[a], p);
}

const int MAXN = 1000;
point A[MAXN];

int main(){
    int n;
    cin >> n;
    for (int i = 0; i < n; i++){
        cin >> A[i].x >> A[i].y;
        A[i].id = i;
    }
    sort(A, n);
    n = unique(A, n);
    int ans = 0;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (A[i].x<A[j].x && A[i].y < A[j].y && binary_search(A, n, A[i].x, A[j].y) && 
                      binary_search(A, n, A[j].x, A[i].y)){
                ans++;
            }
    cout << ans << endl;
    return 0;
}

标签:return,point,int,mid,初赛,id,++,2021,CSP
From: https://blog.csdn.net/weixin_60445850/article/details/141705305

相关文章

  • appsettins.json 复制到输出文件夹 CopyToOutpuDirectory 配置文件 csproj
    复制配置文件到输出文件夹<ItemGroup><NoneUpdate="appsettings.json"><CopyToOutputDirectory>Always</CopyToOutputDirectory></None><NoneUpdate="nlog.config"CopyToOutputDirectory="Always&qu......
  • P9041 [PA2021] Fiolki 2
    简要题意可以去看其他题解。前置知识:LGV引理。看到这道题我们先考虑该怎么判定\(f(l,r)\)是否等于\(x\)。看完题面后很难不让人想到LGV引理(不相交路径,起点集\(S\)和终点集\(T\))。但是LGV引理是用于计数的,放在这里似乎并不好用。但是我们可以注意到,只要没有合法情况,......
  • P7075 [CSP-S2020] 儒略日 题解
    P7075[CSP-S2020]儒略日题面:题目描述为了简便计算,天文学家们使用儒略日(Julianday)来表达时间。所谓儒略日,其定义为从公元前4713年1月1日正午12点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴......
  • 信息学奥赛初赛天天练-78-NOIP2015普及组-基础题3-中断、计算机病毒、文件传输协议FTP
    NOIP2015普及组基础题38所谓的“中断”是指()A操作系统随意停止一个程序的运行B当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的过程C因停机而停止一个程序的运行D电脑死机9计算机病毒是()A通过计算机传播的危害人体健康的一种......
  • CSP-S初赛知识点汇总
    CSP-S初赛知识点汇总进制转换二进制整数部分略。小数部分将小数点后部分整体*2,取其整数部分的结果即为对应二进制数字。之后,取计算后的数字小数部分继续计算直到其全为0为止。举一个例子:将33.25转化为二进制数整数部分:33/2=16......116/2=8......08/2=4......0......
  • YOLOv9添加DCNv4可变性卷积与RepNCSPELAN4结构融合(windows系统成功编译),全网最详细教
    前言引入了可变形卷积v4(DCNv4),这是一种为广泛视觉应用设计的高效且有效的操作算子。DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1.移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2.优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相......
  • 历年CSP-J初赛真题解析 | 2016年CSP-J初赛阅读程序(23-26)
    学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。附上汇总贴:历年CSP-J初赛真题解析|汇总_热爱编程的通信人的博客-CSDN博客#include<iostream>usingnamespacestd;intmain(){intmax,min,sum,count=0;inttmp;cin>>tmp;......
  • Abaqus2023下载地址(永久使用不限安装次数)Abaqus2021
    Abaqus是一款功能强大的有限元分析软件,它具有以下特征和功能:1.全面的线性与非线性有限元分析功能,可以处理结构、流体热传导等多种物理场问题。2.拥有先进的非线性材料模型和接触算法,能准确预测复杂结构的非线性响应。3.强大的多体动力学分析功能,可以仿真机构运动......
  • Adams2021软件中文版Adams2020下载安装教程全版本
    Adams是一款功能强大的多体系统动力学仿真软件,主要具有以下特点:1.精确的刚体动力学求解器,可以对机械系统的运动进行高保真仿真。2.内置丰富的关节运动学库,大大简化了机构建模过程。3.强大的控制系统建模功能,可以对机电一体化系统进行仿真。4.先进的仿真后处理工......
  • YOLOv9改进策略【卷积层】| 利用MobileNetv4中的UIB、ExtraDW优化RepNCSPELAN4
    一、本文介绍本文记录的是利用ExtraDW优化YOLOv9中的RepNCSPELAN4,详细说明了优化原因,注意事项等。ExtraDW是MobileNetv4模型中提出的新模块,允许以低成本增加网络深度和感受野,具有ConvNext和IB的组合优势。可以在提高模型精度的同时降低一定量的模型参数。文章目录一、......