Discussion Thread.
Problem A: ATM Queue
Problem B: Metal Harvest
Problem C: Painters' Duel
Problem D: Yeetzhee
Contest Link: here
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
Discussion Thread.
Problem A: ATM Queue
Problem B: Metal Harvest
Problem C: Painters' Duel
Problem D: Yeetzhee
Contest Link: here
Name |
---|
How to think about D?
I basically wrote brute force with cache. That was enough to pass hard.
The main idea is we don't re-throw dice in the turn if we still can get the answer. Then I just kept all groups I could have by current turn and iterated which number I get in current turn. Then honestly update vector, sort it and check that given one is still greater in each position.
Why that works fast? It seems we don't have that many states.
how to solve B?
It seems the most challenging part was to understand the statements. Basically we need to sort all segments, then take one by one and greedy place robots (you actually use each of robots once, not reuse them). Then you might have some suffix left for the robot. We just take next segment and check if this robot can cover it as well. If it can, we do nothing. If it partially covers it, remove that prefix from the segment and then put new robot as described before.
Agreed!
Understanding the statement was the most difficult part of the problem.
C was fun! Thanks authors! :)
Could you provide any insight or intuition on why the recursion depth is actually low?
Also can someone help me if there is any non-backtracking solution to the same ?
Intuition was this: I have no idea how to solve it other way, applying profile DP or so. Then another idea is we pretty quickly shrink number of valid moves and there are many states where we have only one option. Having fun I implemented simple brute force and that did not get TL.
Is this joke
Actually not! I am one of those who thinks that there is a word "programming" in "programming competitions". Sometimes it is nice to have good old-fashioned brute force :)
But your problems are fun too! Thanks to you for making my old brain thinks sometimes :)
How to solve C?
Google kickstart/codejam mostly ask problem based on expected value and i am never able to make it. Just gonna enjoy the fact that i am dumb!
Well, you have an exciting opportunity to learn it. Imo, you cannot find a truly involved problem in terms of probability because a few people would solve it. So you only have to understand basics from probability (and presumably a lot more at coding).
Try this may be it'll help
Thanks!