I've always used your option number 3. It's not difficult to figure out how much every one has paid!
Take a notebook with you in your trip. Draw 4 columns, the first one for item names you must pay in common (transport, accommodation...) and the other 3 columns for the amount each person paid for each item.
For example, if Person 1 pay $10 a taxi, you write in the first column "Taxi from A to B" and the amount 10 under the column for Person 1. If Person 1 and Person 2 pay $30 each one for a Hotel, you'll write "Hotel at X" and 30 under Person 1 and Person 2.
Item | Person 1 | Person 2 | Person 3
-----------------------------------------------------
Taxi A to B | 10 | |
Hotel at X | 30 | 30 |
When you finish your trip, sum up the 3 columns. It will give you the amount paid for each people. Sum up these 3 values and divide by 3 (mean) and you have the balance each one has to pay to others.
For example, Person 1 has a sum of 100, Person 2 has a sum of 120 and Person 3 has a sum of 80. The mean is (100 + 120 + 80) / 3 = 100. So Person 1 is ok because he/she has paid exactly the mean; Person 2 is 120 - 100 = 20 over the mean so he/she must get $20 from Person 3 that is 80 - 100 = -20, $20 under the mean.
Item | Person 1 | Person 2 | Person 3
-----------------------------------------------------
Taxi A to B | 10 | |
Hotel at X | 30 | 30 |
........ | .... | .... |
-----------------------------------------------------
100 120 80
Mean | (100 + 120 + 80) / 3 = 100
Diff | 0 | 20 | -20
This way each person can pay with their own credit card and it's easy to know how much is the balance to pay each other.
HACK: If you make the sum up in the middle of the trip you can know who's under the mean and then use this information to decide who's the next people who must pay.