ABC366D 題解

WerChange發表於2024-08-12

Solution

題意簡述

給你一個正整數 \(N\)\(N^3\) 個非負整數,表示為 \(A_{x,y,z}\) 其中 \(1 \leq x, y, z \leq N\)

您將得到以下格式的 \(Q\) 個查詢,必須按順序處理。

對於第 \(i\) 次查詢 \((1 \leq i \leq Q)\) ,您將得到一個整數元組 \((Lx_i, Rx_i, Ly_i, Ry_i, Lz_i, Rz_i)\) ,其中 \(1 \leq Lx_i \leq Rx_i \leq N\) , \(1 \leq Ly_i \leq Ry_i \leq N\) , 和 \(1 \leq Lz_i \leq Rz_i \leq N\) 。求

\[\sum\limits_{x=Lx_i}^{Rx_i} \sum\limits_{y=Ly_i}^{Ry_i} \sum\limits_{z=Lz_i}^{Rz_i} A_{x,y,z} \]

題解

簡單三維字首和。考慮一下容斥關係就好了。

code

容斥知識補充

既然題解寫都寫了,寫詳細一點。

首先引入容斥的最經典的就是這張韋恩圖(來自 OI-wiki):

現在我想知道 \(|A\cup B\cup C|\),並不是簡單粗暴的三個集合大小相加,因為互相有重疊部分。正確答案是:\(|A\cup B\cup C|=|A|+|B|+|C|-|A\cap B|-|A\cap C|-|B\cap C|+|A\cap B\cap C|\)。相信還是很好理解的這裡不贅述了。

把它推廣到一般情況,就是我們熟悉的容斥原理了。

定義

\[\left|\bigcup_{i=1}^nS_i\right|=\sum\limits_i\left|S_i\right|-\sum\limits_{i<j}\left|S_i\cap S_j\right|+\sum\limits_{i<j<k}\left|S_i\cap S_j\cap S_k\right|-\dots\\ +(-1)^{m-1}\sum\limits_{a_i<a_{i+1}}\left|\bigcap_{i=1}^mS_{a_i}\right|+\dots+(-1)^{n-1}\left|S_1\cap\dots\cap S_n\right| \]

整理,得

\[\left|\bigcup_{i=1}^nS_i\right|=\sum\limits_{m=1}^n(-1)^{m-1}\sum\limits_{a_i<a_{i+1}}\left|\bigcap_{i=1}^mS_{a_i}\right| \]

證明

我們計算每個元素出現的次數,對於 \(x\),假設它出現在 \(T_1,\dots,T_m\) 的集合中。

\[\begin{aligned} Cnt&=|\{T_i\}|+\dots+(-1)^{k-1}\left|\left\{\bigcap_{i=1}^kT_{a_i}|a_i<a_{i+1}\right\}\right|+\dots+(-1)^{m-1}|\{T_1\cap\dots\cap T_m\}|\\ &=\binom{m}{1}-\binom{m}{2}+\dots+(-1)^{m-1}\binom{m}{m}\\ &=\binom{m}{0}-\sum\limits_{i=0}^m(-1)^i\binom{m}{i}\\ &=1-(1-1)^m=1 \end{aligned} \]

每個元素出現次數為 \(1\),合併起來就是並集了,證畢。