在线测试本题
题目描述
n 个男生和 n 个女生, 每个男生和与之对应的女生相互吸引, 但选出男女双方都满意的方案时(即两个人的吸引值不同 a i ≠ b j a_i \neq b_j ai=bj), 每个人只有一个合适的对象。
输入描述
第一行输入个正整数 n ( 1 ≤ n ≤ 1 0 5 ) n (1 \le n \le 10^5) n(1≤n≤105)
第二行输入 a 1 , ⋯ , a n ( 1 ≤ a i ≤ 1 0 9 ) a_1, \cdots, a_n (1 \le a_i \le 10^9) a1,⋯,an(1≤ai≤109)
第三行输入 b 1 , ⋯ , b n ( 1 ≤ b i ≤ 1 0 9 ) b_1, \cdots, b_n (1 \le b_i \le 10^9) b1,⋯,bn(1≤bi≤109)
输出描述:
一个长度为 n n n 的数组, 表示匹配方案
样例
输入
5
2 2 2 2 2
1 1 1 1 1
输出
25
题解
思路:由于男生和女生配对时不能有相同的值,那么我们分值域来考虑。对于男生中的 值=x 的这些人,我们需要匹配女生里的非x值。 匹配方案个数就是 男生中x的个数 乘以 女生中非x的个数。答案就是所有值的方案的和。
为了快速查询女生/男生集合中某个值出现的次数,我们自然想到使用哈希表来统计。
代码见网站内部(文章顶部):塔子哥的文字题解