上海市计算机学会竞赛平台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;
}
相关推荐
W23035765732 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
2401_892070982 小时前
链栈(链式栈) 超详细实现(C 语言 + 逐行精讲)
c语言·数据结构·链栈
minji...2 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
语戚3 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
skywalker_113 小时前
力扣hot100-7(接雨水),8(无重复字符的最长子串)
算法·leetcode·职场和发展
bIo7lyA8v5 小时前
算法稳定性分析中的输入扰动建模的技术9
算法
CoderCodingNo5 小时前
【GESP】C++三级真题 luogu-B4499, [GESP202603 三级] 二进制回文串
数据结构·c++·算法
sinat_286945195 小时前
AI Coding 时代的 TDD:从理念到工程落地
人工智能·深度学习·算法·tdd
炽烈小老头5 小时前
【 每天学习一点算法 2026/04/12】x 的平方根
学习·算法