In all Pokemon versions, there's a trade off: You can easily level a few Pokemon off of trainers, or slowly grind to level your entire team.
With the goals of beating the game and catching as many possible, what's the best strategy for efficiency in terms of the number of Pokemon you train throughout the game?
What about HM slaves?
For example, should one only focus on three pokemon from the beginning to end game?