Есть вариант проще. Если они все добавляются в строку, то задавать им float:left, а последний оставить без ширины и float - он сам растянется как надо.
<div>
<div style="height:100px; background:#aaf; float:left; width:200px;"></div>
<div style="height:100px; background:#faa; float:left; width:50px;"></div>
<div style="height:100px; background:#afa; float:left; width:100px;"></div>
<div style="height:100px; background:#000"></div>
</div>