It depends on what you mean by "exactly", and what you know beforehand.   If you know the frequency w, and that the sinusoid is unbiased, you have an equation
a cos(w * x) + b sin(w * x)
with two (x,y) points at different x values you can find a and b, and then check the generated curve against all the other points.  Choose the two x values with the smallest number of y observations and try it for all the y's. If there is a bias, i.e. your equation is 
a cos(w * x) + b sin(w * x) + c
You need to look at three x values.
If you do not know the frequency, you can try the same technique, unfortunately the solutions may not be unique, there may be more than one w that fits.
Edit  As I understand your problem, you have a real y value for each x and a bunch of incorrect ones.  You want to find the real values.  The best way to do this is to fit curves through a small number of points and check to see if the curve fits some y value in the other sets.
If not all the x values have valid y values then the same technique applies, but you need to look at a much larger set of pairs, triples or quadruples (essentially every pair, triple, or quad of points with different y values)
If your problem is something else, and I suspect it is, please specify it.
- Define sinusoid.  Most people take that to mean a function of the form a cos(w * x) + b sin(w * x) + c.  If you mean something different, specify it.
2  Specify exactly what success looks like.  An example with say 10 points instead of 100 would be nice. 
It is extremely unclear what this has to do with combinatorial optimization.