We will hold AtCoder Beginner Contest 154.
- Contest URL: https://atcoder.jp/contests/abc154
- Start Time: http://www.timeanddate.com/worldclock/fixedtime.html?iso=20200209T2100&p1=248
- Duration: 100 minutes
- Number of Tasks: 6
- Writer: DEGwer, kyopro_friends, latte0119, sheyasutaka, EnumerativeCombinatorics
- Rated range: ~ 1999
The point values will be 100-200-300-400-500-600.
We are looking forward to your participation!
Screencast + Brief Explanations
How to solve F?
Use $$$\sum_{i=0}^{M}{{N+i}\choose{i}}={{N+M+1}\choose{M}}$$$.
what is the name of this formula ?
For task-D. I spent 30 mins on reading what is meant by expected value and linearity of expectation.
That was unnice problem. Still don't get it why this is wrong. Somebody explain?
You need to take care of the precision.
It is all integer, and at the end I do division by 2. What can be wrong with precision there?
Have a look https://atcoder.jp/contests/abc154/submissions/10011578 The final answer need not to be an integer.
cout
doesn't work well with big float numbers if you don't usesetprecision
.For example, if
d
is87654321
.As you can see, outputs are very different.
Thanks, got it.
Hack in problem E :
10000 3
whats correct output?
2916
Submission 10000000 goes to user lmdexpr! https://atcoder.jp/contests/abc154/submissions/10000000
What is the intended solution for F?
My solution https://atcoder.jp/contests/abc154/submissions/10004590 passed however, took 1977 ms, at which point it's just luck that it passed within the 2s time limit. So clearly either I implemented this horribly bad, or it was not the intended solution.
I simplified $$$\sum_{i=r1}^{r2}\sum_{j=c1}^{c2}{{i+j}\choose{j}}$$$ to $$$\sum_{j=c1}^{c2}{{r2+j+1}\choose{j+1}}-{{r1+j}\choose{j+1}}$$$ and then simply evaluted.
You can do the same simplification again to eliminate the remaining summation, so you end up with a completely closed form that looks like $$$A-B-C+D$$$ (where $$$A$$$, $$$B$$$, $$$C$$$, $$$D$$$ are each a single binomial coefficient).
By the way, instead of worrying about the lower bounds, since they make it a little messier, I solved the problem for the special case of $$$(r_1, c_1) = (0, 0)$$$ and then used the fact that you can use principle of inclusion-exclusion to express an arbitrary rectangle as the sum/difference of four rectangles starting at $$$(0, 0)$$$. (Very similar to how people use
[a, b) = [0, b) - [0, a)
all the time when there's only one dimension.)Doing it this way makes the final answer a lot easier to come to and code up bug-free, I think.
You can precompute the inverses of factorials in $$$O(N)$$$ as well: https://atcoder.jp/contests/abc154/submissions/10024715. Then you can evaluate a single binomial in constant time instead of $$$O(\log \mathrm{MOD})$$$, and here the code runs roughly 10x quicker.
Thank you very much mnbvmar for actually taking the time to edit my code and explain.
Peculiar similarity between E and 1036C - Classy Numbers, except in E you need to directly manipulate on strings.
How to solve E?
Standard Digit DP problem
Blog
Thanks!
You can use NTT to solve it, but waste some time. Because I don't know the NTT of 1e9+7, I use the board of any mod NTT. C(x+y,x) = (x+y)! / x! / y! , Then it can be converted into an exponential generating function, multiplied, and finally multiply each bit by i!. Add it up.
orzorzorz, and your comment can be deleted by edit it :)
I am sorry!I've changed it.