Loading

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:没有额外限制
posted @ 2025-01-25 10:25  Yorg  阅读(13)  评论(0)    收藏  举报