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, smeke
- 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}}$$$.

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.

I really am not the correct guy to explain but I could provide my submission here

`cout`

doesn't work well with big float numbers if you don't use`setprecision`

.For example, if

`d`

is`87654321`

.As you can see, outputs are very different.

Thanks, got it.

can anyone explain a solution for E?

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).

my codeBy 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!

What's a good c++ compiler on MAC like dev-c++