Tips and Tricks

Правка en7, от Nourhan_Abo-Heba, 2026-02-02 02:13:08

Tips and Tricks

By Nourhan_Abo-Heba


Problem A: Counting Distinct Elements in Prefixes

Idea: Track distinct elements up to each index using frequency map.

Implementation: ```cpp map<int, int> freq; vector distinct(n); int cnt = 0;

for (int i = 0; i < n; i++) { if (++freq[x[i]] == 1) cnt++; distinct[i] = cnt; } ```

Sum over all prefixes: cpp long long ans = 0; for (int i = 0; i < n; i++) ans += distinct[i];


Problem B: Reconstruct Array from Prefix XOR

Key: If p[i] = a[1] ⊕ a[2] ⊕ ... ⊕ a[i], then a[i] = p[i] ⊕ p[i-1]

Build prefix array: cpp vector<int> p(n + 1); p[0] = 0; for (int i = 1; i <= n; i++) { p[i] = (i == r) ? l - 1 : i; }

Recover original array: cpp for (int i = 1; i <= n; i++) { cout << (p[i] ^ p[i - 1]) << " "; }

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en11 Английский Nourhan_Abo-Heba 2026-02-06 03:56:06 215
en10 Английский Nourhan_Abo-Heba 2026-02-05 20:58:56 182
en9 Английский Nourhan_Abo-Heba 2026-02-04 01:08:10 274
en8 Английский Nourhan_Abo-Heba 2026-02-02 02:16:25 1714 Reverted to en6
en7 Английский Nourhan_Abo-Heba 2026-02-02 02:13:08 1714
en6 Английский Nourhan_Abo-Heba 2026-02-02 02:07:01 568
en5 Английский Nourhan_Abo-Heba 2026-02-02 02:05:19 1383
en4 Английский Nourhan_Abo-Heba 2026-02-02 00:39:24 337
en3 Английский Nourhan_Abo-Heba 2026-02-02 00:38:11 2780
en2 Английский Nourhan_Abo-Heba 2026-02-02 00:30:37 1056
en1 Английский Nourhan_Abo-Heba 2025-11-07 15:57:43 784 Initial revision (published)