本文於 github 部落格同步更新
你他媽管這個叫 noip 模擬賽?
A:
對於上述整除式的一組解 \((c, s)\) ,在 \(c \leq a \leq A\) 且 \(s \leq b \leq B\) 時,會被統計入答案,因此它對答案的貢獻為 \((A-c-1)(B-s-1)\) 。
在 \(s>x\) 時,注意到 \(\frac{s}{s+x}>\frac{1}{2}\) , \(\frac{c}{c+x}<1\),因此 \(k=\frac{\frac{c}{c+x}}{\frac{s}{s+x}}<\frac{1}{\frac{1}{2}}=2\) ,所以 \(k=1\) 。此時可得 \(c=s\) 。
記 \(p=\min (n, m)\):
在 \(s \leq x\) 時,注意到 \(k=\frac{\frac{c}{c+x}}{\frac{s}{s+x}}<\frac{1}{\frac{s}{s+x}}=\frac{s+x}{s}=1+\frac{x}{s}\)。
暴力列舉 \(s, k\),複雜度為 \(\sum_{i=1}^{x} \frac{x}{i}\) 為調和級數,此時暴力列舉每組解,累加貢獻即可,時間複雜度為 \(\mathcal x\log x\)。
B:
我們發現兩個點 \(u,v\) 在同一個點集的充分條件是:對於所有不是 \(u,v\) 的點 \(x\),要麼 \(u,v\) 與 \(x\) 之間均有直接連邊,要麼 \(u,v\) 與 \(x\) 之間均無直接連邊。
容易想到雜湊,每個點維護該點與別的點是否有直接連邊。
而我們僅需討論一下 \(u,v\) 是否存在邊即可,我們如果直接維護這兩個點是否有邊也是可以做的,或者我們可以考慮同時維護 \(hash_u=hash_v\) 和 \(hash_u \operatorname{xor} val_v=hash_v \operatorname{xor} val_u\),如果這兩個點不在同一連通塊,則這兩個等式均不成立,否則一定只會成立其中一個。
時間複雜度 \(\mathcal O(n)\)。
C:
牛魔酬賓
D:
牛魔酬賓
原題