USACO 2025 JAN Silver A 中文题面
USACO 2025年1月比赛,银组
问题1:奶牛体检
约翰有 \(N\)(\(1 \leq N \leq 5 \cdot 10^5\))头奶牛排成一行,第1头奶牛在队伍的前面,第 \(N\) 头奶牛在队伍的后面。约翰的奶牛有多种不同的品种。他用一个从 \(1\) 到 \(N\) 的整数来表示每个品种。第 \(i\) 头奶牛的品种是 \(a_i\)(\(1 \leq a_i \leq N\))。
约翰要带他的奶牛去当地的一家牛医院体检。然而,这家牛医院的兽医非常挑剔,他只想检查队伍中第 \(i\) 头奶牛,前提是它是品种 \(b_i\)(\(1 \leq b_i \leq N\))。
约翰很懒,不想完全重新排列他的奶牛。他将执行以下操作恰好一次:
选择两个整数 \(l\) 和 \(r\),使得 \(1 \leq l \leq r \leq N\)。将队伍中第 \(l\) 头到第 \(r\) 头奶牛(包括两端)的顺序颠倒。
约翰想知道这种做法的效果如何。计算所有可能操作中被兽医检查的奶牛数量之和。
输入格式(输入来自终端/标准输入):
第一行包含一个整数 \(N\)。
第二行包含 \(N\) 个整数 \(a_1, a_2, \ldots, a_N\)。
第三行包含 \(N\) 个整数 \(b_1, b_2, \ldots, b_N\)。
输出格式(输出到终端/标准输出):
输出一行,包含所有可能操作中被兽医检查的奶牛数量之和。
样例输入:
3
1 3 2
3 2 1
样例输出:
3
如果约翰选择 \((l=1,r=1)\),\((l=2,r=2)\),或 \((l=3,r=3)\),则没有奶牛会被检查。注意这些操作不会改变奶牛的位置。
以下操作会导致一头奶牛被检查:
- \((l=1,r=2)\):约翰将第一头和第二头奶牛的顺序颠倒,新的队伍品种顺序将是 \([3,1,2]\)。第一头奶牛会被检查。
- \((l=2,r=3)\):约翰将第二头和第三头奶牛的顺序颠倒,新的队伍品种顺序将是 \([1,2,3]\)。第二头奶牛会被检查。
- \((l=1,r=3)\):约翰将第一头、第二头和第三头奶牛的顺序颠倒,新的队伍品种顺序将是 \([2,3,1]\)。第三头奶牛会被检查。
所有六种操作中被检查的奶牛总数是 \(0+0+0+1+1+1=3\)。
样例输入:
3
1 2 3
1 2 3
样例输出:
12
有三种可能的操作会导致3头奶牛被检查:\((l=1,r=1)\),\((l=2,r=2)\),和 \((l=3,r=3)\)。其余的操作每种都会导致1头奶牛被检查。所有六种操作中被检查的奶牛总数是 \(3+3+3+1+1+1=12\)。
样例输入:
7
1 3 2 2 1 3 2
3 2 2 1 2 3 1
样例输出:
60
评分:
- 输入4:\(N \leq 100\)
- 输入5:\(N \leq 5000\)
- 输入6-9:\(a_i, b_i\) 都是在范围 \([1,N]\) 内均匀随机生成的
- 输入10-15:\(a_i, b_i\) 都是在范围 \([1,2]\) 内均匀随机生成的
- 输入16-23:没有额外限制

浙公网安备 33010602011771号