I would suggest 19 + 1 + 1 halflings, 1 boar, and a stack of skeletons (if there are more than 20 skeletons, you can use two equal stacks instead of one single halfling).
In the first round, we use haste on the 19 halflings and send the boar forward.
One halfling can take out about 8 centaurs – so, we send a full stack of skeletons forward, and 19 halflings die, let's say, from 4 shots – although that's not certain.
In the second round, we use haste on the skeletons if they are not facing the enemy – although we can also position them to face the enemy. The boar covers 2 stacks of centaurs, and the skeletons eliminate 1 stack, leaving 1 centaur free to shoot at the single halfling... after that, we can either save the halfling or the boar.
If there are about 50 centaurs, only the skeletons and maybe a single unit will survive; if there are 25-35 centaurs, then several halflings will also survive, along with everything else.
P.S. The same applies to a Knight with native troops when breaking through archers with higher speed than your own archers – in the first round, it's better to speed up the archers, and in the second, pikemen or other medium-speed units.
P.S. Regarding the knight with native troops. It would be better to add a unit with flying creatures to the knight's army instead of a necromancer; otherwise, the losses will be greater. However, if only a necromancer is available in the tavern and the game is online, the tactic of speeding up the archers in the first turn is interesting (we shoot, presumably, at the fourth or fifth stack, so that in the second turn, we can block 2-3 stacks with pikemen).

Орден Феникса – харизматический :) лидер