"alive _x" specifies that it should only look for living members of the group
since units don't immediately get removed from the group, there is a delay with the other count that doesn't have that.
_x is a variable that takes on the value of each item in an array, in this case, the units of a group.
so if a unit in the group is not alive, it won't get counted.
hope that clears it up for ya