AT_tupc2023_h Count Pseudo-Palindromes
题目描述
长度为 $M$ 的数列 $B=(B_1,B_2,\dots,B_M)$ 被称为**回文**,当且仅当对于所有 $i=1,2,\dots,M$ 都满足 $B_i=B_{M+1-i}$。
又,数列 $B$ 被称为**伪回文**,当且仅当 $B$ 可以通过重新排列变成回文。
---
给定一个长度为 $2N$ 的数列 $A=(A_1,A_2,\dots,A_{2N})$。$A$ 中包含 $1,2,\dots,N$,每个数字恰好出现 $2$ 次。
对于每个 $i=1,2,\dots,2N$,请计算满足以下条件的正整数组 $(l,r)\ (1 \le l \le r \le 2N)$ 的个数:
- $l \leq i \leq r$
- 在 $(A_l,A_{l+1},\dots,A_r)$ 中,$A_i$ 只出现一次
- $(A_l,A_{l+1},\dots,A_r)$ 是伪回文
输入格式
输入按如下格式从标准输入读入。
> $N$ $A_1$ $A_2$ $\dots$ $A_{2N}$
输出格式
设第 $i$ 项的答案为 $X_i$,请按顺序用空格分隔输出 $X_1,X_2,\dots,X_{2N}$。
说明/提示
### 样例解释 1
对于每个 $i$,满足条件的正整数组如下:
- $i=1$ :$(1,1)$
- $i=2$ :$(2,2),(2,4)$
- $i=3$ :$(1,3),(3,3)$
- $i=4$ :$(4,4)$
### 数据范围
- $1 \le N \le 5 \times 10^5$
- $1,2,\dots,N$ 各自恰好在 $A$ 中出现两次
- 所有输入均为整数。
由 ChatGPT 5 翻译