25 June 2020

Educational Codeforces Round 90 Postmortem

What went well
• B, C, D took me 5 minutes, 9 minutes, and 24 minutes respectively.
What went poorly
• A took 21 minutes (drew a huge blank; no, I did not wake up late), which was a massive penalty, since it increases the penalties for B, C, and D.
• Couldn't get E in an hour.
Where I got lucky
• D was on the easier side.

23 June 2020

Codeforces Round #652 (Div. 2) Postmortem

What went well
• 0:00 submission for A!
• Got ABCD (albeit slowly).
What went poorly
• Incurred one wrong answer for B and C each (and took a long time too).
• Took half an hour to recognize the recursion for the tree structure in D.
• Thought that the residues of numbers compare the same way as the the numbers themselves (i.e. a > b implies (a % m) > (b % m)…no, just no).
Where I got lucky
• Got D with 9 minutes to go, which involved a slight wild guess.

21 June 2020

Codeforces Round #651 (Div. 2) Postmortem

What went well
• Decently fast ABC (0:01, 0:10, 0:23).
What went wrong
• Walled by D. I didn't recognize that binary search works because I didn't know how to verify that a subsequence with max less than or equal to a target value was doable in O(N).
• I thought incorrectly (yet again) that O(N lg N) is too slow for N <= 10**6, so I tried something silly to find the minimum # subsequences of the form (01)+ or (10)+, when a straightforward O(N lg N) would have worked.
Where I got lucky
• Gained rating!

13 June 2020

Bugforces (ft. senile logarithmic exponentiation)

```using i64 = long long;

// Precondition: (base, exponent) won't cause overflow
i64
my_pow(const i64 base, const i64 exponent)
{
i64 accumulator = 0;
for (i64 exponent2 = exponent, current_power = base; exponent2 > 0;
exponent2 >>= 1, current_pow *= current_pow)
{
if (exponent2 & 1)
{
accumulator += current_power;
}
}
return accumulator;
}
```

04 June 2020

Codeforces Round #647 (Div. 2) Postmortem

What went well
• Got B in 5 minutes -- straightforward problem.
• Got C in 5 minutes -- another straightforward problem.
• Got D in 20 minutes, once I figured out how to read. :-P
• New personal best!!!
What went poorly
• Wrote an extremely clumsy solution for A because I decided after a brief tradeoff analysis to match the problem statement as close as possible instead of thinking about a better implementation
• IlliterateForces strikes again -- misread D, so submitted a solution that solves a similar problem, which cost ~20min and a submission penalty.
• Couldn't get E.
Where I got lucky
• Got extremely lucky with B and C. I have been struggling with Bs recently; this B's 5 minute solve time thankfully bucks the trend. My previous fastest C solve time was ~15 minutes.