Answer to old chestnut: two riverboats:

The first answer is that the river is 1800 yards wide.

The second answer is that the problem is underspecified. There are 4 equations but 5 variables if you write the problem out as a system of mathematical equations, at least if you write it in the way many people will. As a result, you cannot solve for all the variables; there are multiple solutions. It happens, though, that all these solutions have the same value for the width of the river.

The shortcut way of solving it is this:
In the first segment of time, from when the boats started until they first met, the total distance traveled by the two ships equals the total width of the river. By the time they meet for the second time, each boat has traveled across the river once, and their combined progress on the second legs of their journeys equals a third river-width. Since the boats travel at constant speed, the time from the start to the second meeting of the boats must equal three times the time from the start to the first meeting. Since one boat traveled 700 yards in the first segment of time, that boat must have traveled 2100 yards total by the second meeting. Since it traveled across the river plus 300 yards by that point, the width of the river must be 1800 yards.

Now, let's explain the mathematics behind the problem by writing out those equations. Let:

x = the width of the river, in yards
v, w = the speeds of the two boats, in yards/second
A, B = the two times when the boats pass, in seconds after the time they left their starting points
Now at time A, we know that the first ship has traveled 700 yards, and its speed is v, so we have:
Av = 700
Also, the other ship has traveled x - 700 yards at this same time. It's speed is w, so:
Aw = x - 700
At time B, the first ship has now traveled across the river plus 300 yards, or x + 300 yards:
Bv = x + 300
And the second ship is 300 yards short of completing the second crossing. It has traveled 2x - 300 yards in time B:
Bw = 2x - 300
Those are the four equations.

In this problem, time is the free parameter. We aren't told anything that allows us to determine a length of time. I chose seconds as my unit of time above, but a better choice would have been to let 1 unit of time equal the time between the start of the problem and the first meeting of the boats.

If we do that, and redefine the variables above to be in this time unit, the equations don't change, but now we know A is 1 in this unit.

From the first equation, we know v = 700 (in the units of yards/time_until_first_meeting).

Similarly, the second equation reduces to w = x - 700.

In the last two equations, we can substitute in these values for v and w. We get:

700B = x + 300
(x - 700)B = 2x - 300

Then we can solve the first of these two equations for B in terms of x:

B = x/700 + 3/7
And substituting into the second equation, we get:
(x - 700)(x/700 + 3/7) = 2x - 300

x2/700 - x + (3/7)x - 300 = 2x - 300

x2/700 - (18/7)x = 0

x/700 - (18/7) = 0

x = 700(18/7) = 1800.
Now, we can plug this back into the equation for B and get B = 18/7 + 3/7 = 3.

Similarly we now know w = 1100 and we already knew v = 700.