Please provide your remark on my attempt at solving part b below. If you have a better way to do this, please also comment below. Thanks.
We partition the group of kids into 2 sets: one of $i$ kids who want 1 scoop, and one of $(20-i)$ kids who want 2 scoops.
Each kid from the first group has ${5 \choose 1} = 5$ choices, so in total there are $5^i$ ways to give them ice cream.
Each kid from the second group has ${5 \choose 2} = 10$ choices of two scoops of two different flavours, and $5$ choices of two scoops of the same flavours, so $10^{(20-i)} + 5^{(20-i)}$ ways in total.
There are also ${20 \choose i}$ ways to choose $i$ kids from 20 kids. So in total there are $\sum_{i=0}^{20} 5^i \times (10^{(20-i)} + 5^{(20-i)})$ options.

First things first, you solution is wrong - each kid of the latter group has 15 choices, so you final formula should read $15^{20-i}$ instead of $10^{20-i}+5^{20-i}$. Also, it does not account for the selection of the two sets, because the ${20} \choose {i}$ you have calculated is missing. Furthermore, your way is not ideal. Better note that each kid has 20 distinct choices, and thus deduce that there are $20^{20}$ ways to do the job. Now, observe that both my way and yours (after the corrections) are valid methods to count the ways to buy ice cream, and thus cede the same quantity. Can you guess why that is?