All the given languages are CFLs.Let us understand how..
A) a2n . bn
For this we push the a's till b's do not come in the input.As soon as b starts coming , for every b that is read , pop 2 a's from the stack.Thus the given language can be modelled on deterministic PDA since how many push or pop needs to be done at each step.
Hence it is a DCFL to be more accurate and hence CFL as well
C)a4m . bm
For this we proceed in similar manner as in A) .Just the modification that is required is when b starts coming in input for very b that is read , pop 4 a's from the stack.Thus
Thus the given language can be modelled on deterministic PDA as well since how many push or pop needs to be done at each step.
Hence it is a DCFL to be more accurate and hence CFL as well.
Now coming to B)
B) an . bm such that m <= n <= 3m
Let this language be L.Now L can be decomposed into sublanguages L0 , L2 , ......, L2m as shown below :
L0 = { am bm} for m = n
L1 = { am+1 bm } for n = m+1
...
...
L2m = { a3m bm} for n = 3m
We know each of these sublanguages are CFL(also DCFL) but the result is not going to DCFL as in the above language the number of pops of 'a' w.r.t 'b' will vary according to each of the sublanguages.This is not deterministic behaviour and hence cannot be modelled on deterministic push down automata.So it is not DCFL
But yes it can be modelled using non deterministic PDA.
Hence the given language is CFL but not DCFL