diff --git a/posts/algorithms/cp-log.html b/posts/algorithms/cp-log.html index 8282936..fe30e69 100644 --- a/posts/algorithms/cp-log.html +++ b/posts/algorithms/cp-log.html @@ -66,14 +66,12 @@ >938 (div. 3)—15/2/2025 -
- What would've been my best contest. Unfortunately, CodeForces - decided to go down for TREE[3] centuries, which absolutely ruined - my groove in the contest and terminated my virtual. No excuses, - though, as I set a timer and finished up later. -
-+ What would've been my best contest. Unfortunately, CodeForces + decided to go down for TREE[3] centuries, which absolutely ruined my + groove in the contest and terminated my virtual. No excuses, though, + as I set a timer and finished up later. +
Brute-forced it but it still took me a few minutes.
- I had mentally tapped out by this point (I submitted a TLE \(O(n^2k)\) - solution without using my brain). I solved F first, then took a - look at G before coming back to E, robbing me of 10 minutes - that could've been the difference between another solve. + I had mentally tapped out by this point (I submitted a TLE + \(O(n^2k)\) solution without using my brain). I solved F first, then + took a look at G before coming back to E, robbing me of 10 + minutes that could've been the difference between another solve.
+ Everyone recommends CSES so I started with it, doing the first 8 + problems. +
+Trivial, but I forgot to print 1 at the end.
++ Return the exactly correct answer. +
+N/A
+Use invariants.
+
+ Run through one iteration of the algorithm. Here, I erroneously
+ added x - last to a quantity,
+ after manipulating x.
+
+ I'd seen this problem before yet struggled.
+ Fully understand the problem constraints. In this case, While
+ I understood the definition of a permissible permutation, I didn't
+ fully internalize that you could place number wherever you
+ want. Instead, I was locked in on placing some x at
+ i, i + 2, i + 4, .... Further, the fact that I didn't
+ immediately recognize this solution means I need to improve at
+ upsolving and reviewing problems.
+
+ Absolutely disastrous. I continually just f*dged with the offsets I + was adding to my strategy until I happened to get the answer right. + Don't guess. Also, + don't be lazy—if an algorithm works, focus, write it out, + and enjoy being correct. +
++ Required 2 hints from Sam Altman. git gud at combinatorics. + Use the paradigm "count good, remove bad." Lock in less on counting + specifics—instead, consider what objects + mean in aggregate. In this case, a \(2\times3\) grid + represents an "area" of attack, contributing 2 bad knight pairs. + This is much easier to digest then attempting to remove overcounting + per-knight. Fundamentally, the problem involves placing 2 knights, + so breaking it down 2 knights at a time is the most intuitive take. +
++ Don't lock in on one approach. Here, this is dp. The fact + that I knew the idea of partitioning the first \(n\) numbers into + two groups of size \(\frac{n(n+1)}{4}\) but failed to recognize the + greedy approach means I didn't grasp the fundamental arithmetic of + the problem, nor the greedy idea: every number must go into a set. + If you add the largest number possible to set 1 to not exceed the + target, this number can always be formed in the other set by + choosing \(1\) and \(x-1\). git gud at greedy. +