Hey, on the topic of minimum Attack stat exp.:
Assuming that Chansey + Shuckle is the most efficient combination, one obtains the following set of equations:
let a be 2*<Chansey stat> and b be <Shuckle stat>.
500a+20b > 37904
10a+230b > 37904
70a + 10b > 37904
100a + 5b > 37904
10(a+b) = x
Where x is the minimum number of stat exp in attack.
The following java code contains a simple double for-loop that runs through a few relevant values of a and b and tries to find the minimum sum of a and b... Unfortunately, the tabs here are not retained, meaning this is fairly illegible...
a*2 is found to be 1042 and b is found to be 144, meaning that 1042 Chansey and 144 Shuckle are required. The end stat spread is: 263380 6650 38330 37910 52820; Special takes the longest time to approach. 6650 is the lowest number of possible stat EXP and equates to 20 points.
However, woodchuck has pointed out that the actual value for stat exp may even be zero - given that attack stat exp. gained is probably floored if shared between two pokemon, if split among 6 Pokemon, you will gain absolutely no Attack stat exp. from Chansey. Similarly, if a Pokemon has an Exp. All and a Shuckle is fought after splitting between 6 Pokemon, according to the formula B/(E*F), where B is the base, E the number of alive participants, and F is 2 if there is an Exp. All and 1 if not, it should also give 0 Attack stat exp. Unfortunately, this method takes a hilariously stupid amount of time given that every single chansey fought gives off a whopping 5 Special out of 37904, meaning that you need to have some sort of iron will to endure 7581 battles; 1994 battles with Shuckles are required, meaning that you will fight an extremely tedious
9575 battles just to reduce confusion damage!