上海市计算机学会竞赛平台2023年6月月赛丙组数对的个数

题目描述

现在给定两个长度为𝑛n的正整数序列𝑎1,𝑎2,⋯ ,𝑎𝑛,𝑏1,𝑏2,⋯ ,𝑏𝑛a1​,a2​,⋯,an​,b1​,b2​,⋯,bn​。

问存在多少对数对(𝑖,𝑗),1≤𝑖<𝑗≤𝑛(i,j),1≤i<j≤n满足𝑎𝑖𝑎𝑗=𝑏𝑗𝑏𝑖aj​ai​​=bi​bj​​

输入格式

输入第一行,一个正整数𝑛n,表示序列的长度。

接下来𝑛n行,每行两个正整数𝑎𝑖,𝑏𝑖ai​,bi​。

输出格式

单个整数:表示表示满足题意的数对的个数。

数据范围

对于 50%50% 的数据,1≤𝑛≤10001≤n≤1000

对于 100%100% 的数据,1≤𝑛≤1,000,000,1≤𝑎𝑖,𝑏𝑖≤10001≤n≤1,000,000,1≤ai​,bi​≤1000

样例数据

输入:

3

4 5

3 8

10 2

输出:

1

详见代码:

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int b[1000005];
int c[1000005];
int main()
{
    int n;
    int cnt=0;
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i];
        cin>>b[i];
        c[a[i]*b[i]]++;
    }
    for (int i=1;i<=1000000;i++)
    {
        if (c[i]>=2)
        {
            cnt+=c[i]*(c[i]-1)/2;
        }
    }
    cout<<cnt;
    return 0;
}
相关推荐
Lenyiin32 分钟前
02.06、回文链表
数据结构·leetcode·链表
爪哇学长35 分钟前
双指针算法详解:原理、应用场景及代码示例
java·数据结构·算法
爱摸鱼的孔乙己37 分钟前
【数据结构】链表(leetcode)
c语言·数据结构·c++·链表·csdn
Dola_Pan39 分钟前
C语言:数组转换指针的时机
c语言·开发语言·算法
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
烦躁的大鼻嘎1 小时前
模拟算法实例讲解:从理论到实践的编程之旅
数据结构·c++·算法·leetcode
C++忠实粉丝1 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
用户37791362947552 小时前
【循环神经网络】只会Python,也能让AI写出周杰伦风格的歌词
人工智能·算法
福大大架构师每日一题2 小时前
文心一言 VS 讯飞星火 VS chatgpt (396)-- 算法导论25.2 1题
算法·文心一言
EterNity_TiMe_2 小时前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip