To maximize experience, always keep the Exp. Share turned on (it affects your entire party). Battle every trainer you encounter. Use Exp. Point O-Powers for an additional boost. For money, equip the Amulet Coin or Luck Incense to a Pokémon in your party (it doesn't need to be in battle) to double your prize money from trainer battles. Selling valuable items found through exploration or from the Battle Maison can also provide a significant income boost. Re-battling trainers in the Battle Chateau is another great way to earn both EXP and money.
