Good Observations:

Правка en16, от Ashwanth.K, 2023-08-01 17:29:10

I will account for good observations and ideas while solving problems in codeforces/CodeChef/atcoder . The proofs of the below statements will not be mentioned here; It's advised to do such proofs on your own for exercise.

  • Lets say I have a set $$$S$$$ consisting of integers, denote its $$$lcm(S) = L$$$, I add a new element $$$x$$$ to this set $$$S$$$ , Lets deonte the new set as $$$S'$$$,where $$$S' = union(S , x)$$$ and its $$$lcm(S') = L'$$$. Can we deduce a relation between $$$L$$$ and $$$L'$$$? We can observe $$$L = L'$$$ or $$$L' >= 2*L$$$.

  • We want to find two numbers in an array $$$A[]$$$ with maximum common prefix bits in binary representation. It's easy to show that those two numbers always occur as adjacent numbers in $$$sorted(A[])$$$
  • The number of distinct gcd prefixed/suffixed at an index in an array will never exceed $$$log(A_{max})$$$

  • Let's say I have a number $$$X$$$, And I apply modulo operation as many times as I wish, i.e $$$X = X \% {m_i}$$$ for some different values of $$${m_i}$$$. It can be shown that $$$X$$$ takes $$$log(X)$$$ distinct values until it reaches to $$$0$$$.

  • If $$$N$$$ times $$$abs()$$$ function appears at any problem, maybe bruteforcing all $$$2^N$$$ combinations of $$$+/-$$$ may give way to the solution sometimes.
  • Prefix Bitwise Or/And can take a maximum of $$$log(N)$$$ values.
  • Nested totient function say $$$phi(phi(phi( ... (X) ... )))$$$ will eventually reach 1 in atmost $$$2log(X)$$$ nested functions. Useful for computing expressions like $$$(A^{(B^{(C^..)})})$$$ modulo $$$P$$$. (nested powers).
  • SOS dp may help to compute the number of $$$i$$$ such that $$$A[i]$$$ is a subset/superset/no bits common to a given mask $$$X$$$
  • Partial optimisation of SOS dp leading to $$$3^N$$$ complexity may pass for $$$N <=15$$$.
  • Whenever You want to maximize/minimize bitwise properties among some elements, consider iterating from the last bit and checking its possibility. This greedy assigning from the last bit will work.

  • Any counting problem, like counting pairs of elements/counting subarrays satisfying some property: If any common technique, like fixing the L pointer or 2pointer approach, does not work, try to divide and conquer. It may be easy to come up with a solution sometimes. https://codeforces.net/contest/1849/problem/E
  • The contribution Technique impresses me every time. Try this: https://atcoder.jp/contests/abc312/tasks/abc312_g. Hint: number of ways of choosing three nodes in the same tree path can be converted to summating all path lengths in the tree.

  • General Technique: For counting problems: try to fix some parameters and iterate on it. It may happen that fixing just one parameter may be difficult sometimes to count properly. So try to do casework and identify which cases can be easily calculated by fixing different parameters. Eg, let's say my problem can be divided into 2 cases, $$$case1$$$ and $$$case2$$$. It can happen that fixing parameter $$$A$$$ can be easy to count distinct answers for $$$case1$$$, and fixing another parameter $$$B$$$ can be easy to count distinct answers for $$$case2$$$. Try this: https://codeforces.net/contest/50/problem/E Hint: case1: rational, case2: irrational roots.

  • It's not wrong to complicate ur solution with a lazy segtree. Try this: https://codeforces.net/contest/1553/problem/F
  • Lets take an array $$$A$$$ and let $$$f(x)$$$ be number of subsequence with $$$Xor(subseq) = x$$$. It can be shown that $$$f(x)$$$ is always a power of 2. Strong result: f(x) = 0 or f(x) = f(x1) = f(x2) ...!= 0. More insights on this can be understood well by studying the xor basis technique.

  • $$$O(N^2)$$$ may give tle, but $$$O(N^2/64)$$$ will pass. clue: BITSETS
  • Maximum Manhattan distance between 2 points: convert every point $$$(x,y)$$$ to $$$(x',y') = (x-y,x+y)$$$. then $$$answer = max(max(x')-min(x') , max(y')-min(y')) $$$
  • If you find some observation or pattern problem, better bruteforce all possibilities to arrive at observing patterns quicker. https://codeforces.net/problemset/problem/1730/D, I tried brute-forcing all possibilities; it happened that I could figure out some common pattern everywhere, then I proceeded to put claims, and it happened that they were true.

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en25 Английский Ashwanth.K 2024-05-04 08:29:27 140
en24 Английский Ashwanth.K 2024-01-05 16:13:28 617
en23 Английский Ashwanth.K 2023-08-15 17:31:05 73
en22 Английский Ashwanth.K 2023-08-15 08:29:28 182
en21 Английский Ashwanth.K 2023-08-14 19:03:22 27
en20 Английский Ashwanth.K 2023-08-14 18:57:17 1047 Tiny change: '\n<hr>\n- Idea: Intuitive' -> '\n<hr>\n- **Idea:** Intuitive'
en19 Английский Ashwanth.K 2023-08-04 19:56:30 129
en18 Английский Ashwanth.K 2023-08-04 17:11:19 167
en17 Английский Ashwanth.K 2023-08-02 19:58:33 281
en16 Английский Ashwanth.K 2023-08-01 17:29:10 368
en15 Английский Ashwanth.K 2023-07-30 16:40:36 163
en14 Английский Ashwanth.K 2023-07-29 21:04:40 1 Tiny change: ' <hr>\n-$O(N^2)$ m' -> ' <hr>\n- $O(N^2)$ m'
en13 Английский Ashwanth.K 2023-07-29 21:04:24 73
en12 Английский Ashwanth.K 2023-07-29 20:47:27 1538
en11 Английский Ashwanth.K 2023-07-29 17:37:06 11 Tiny change: 'problem/E].\n' -> 'problem/E] .\n'
en10 Английский Ashwanth.K 2023-07-29 17:36:17 158 Tiny change: 'I will mak' -> '[problem:https://codeforces.net/contest/1849/problem/E]I will mak'
en9 Английский Ashwanth.K 2023-07-28 18:58:14 189 (published)
en8 Английский Ashwanth.K 2023-07-27 15:54:23 6 Tiny change: 'll work.\n- \n\n' -> 'll work.\n' (saved to drafts)
en7 Английский Ashwanth.K 2023-07-27 15:53:15 266
en6 Английский Ashwanth.K 2023-07-27 15:46:50 0 (published)
en5 Английский Ashwanth.K 2023-07-27 15:45:03 204 (saved to drafts)
en4 Английский Ashwanth.K 2023-07-27 15:41:00 0 (published)
en3 Английский Ashwanth.K 2023-07-27 15:40:41 664 Tiny change: 'i.e $X = X%{m_i}$ for' -> 'i.e $X = X \% {m_i}$ for' (saved to drafts)
en2 Английский Ashwanth.K 2023-07-27 15:30:41 107 Tiny change: 'ixed at a point in array ' -> 'ixed at a index in array '
en1 Английский Ashwanth.K 2023-07-27 15:29:19 753 Initial revision (published)