[R48B]相等数对
- 难度 普及
- 时限 1s
- 空限 512m
- 枚举
对于 的数据,,。
思路
, 完全可过。直接双重循环枚举下标 、(),当 且 时累加答案即可。
注意题面中 、 都取 ,且条件 是「下标不同」。因此下标只需用同一套编号比较即可,0 基或 1 基不影响结果。
复杂度
- 时间:, 时约为 次比较。
- 空间:,仅存储两个数组。
仓颉实现
import std.convert.*
import std.env.*
main(): Int64 {
let reader = getStdIn()
let n = Int64.parse(reader.readln().getOrThrow())
let a = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
let b = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
var ans: Int64 = 0
var i = 0
while (i < n) {
var j = 0
while (j < n) {
if (i != j && a[i] == b[j]) {
ans += 1
}
j += 1
}
i += 1
}
println(ans)
return 0
}