combining two sets of vertices to maintain a specific shape?
I maybe should ask for more information on this before I attempt the answer, but I'll take a stab at it anyway. I'm disinclined to agree with Mr Zak's recommendation to use the Boolean modifier, because I find in too many cases, it gives ugly geometry and thus, inferior results. But here's what I'd do. 

Assuming the dog and the cup are separate meshes, I'd make a duplicate of each. Starting with the duplicate of the dog, I'd keep the part of the torso boxed in green, 

[

and hide or discard the remainder. If the geometry in the remaining part of the torso is insufficient for modeling the finished result, I'd add loop cuts and edge rings as needed to make for convenient modeling.

Next, I'd scale the cup so that it is the size I want, and position it within the torso at the desired place. Switching to wireframe view,  I'd hide all but one flank of the dog torso, and if the flank intersects with the cup object, I'd switch to edit the cup, and move the sides that penetrate the flank so they are co-incident with it, adding or removing geometry as necessary. Repeat the process on the other side, and the sides of the cup now conform to the geometry of the Dog's torso. Discard the copy of the dog's torso, as it has largely served its purpose.

Select the original dog, and place the cup along side of it in the desired position and orientation. Add the geometry necessary to be able to demarcate the red lined area in the above image on the side of the dog. Remove the parts of the dog within the red lined area on each side, and if the dog is to be solid, bridge from one flank to the other. Make the cup visible, within this area, and if desired, combine it with the model of the dog using CTRL - J to make a single object.

In my opinion, the fact that the cup has more vertices than the dog is not a major issue, in most cases.