1. 程式人生 > >POJ 2686 —— 狀壓DP + DAG

POJ 2686 —— 狀壓DP + DAG

The input consists of multiple datasets, each in the following format. The last dataset is followed by a line containing five zeros (separated by a space). 

n m p a b 
t1 t2 ... tn 
x1 y1 z1 
x2 y2 z2 
... 
xp yp zp 

Every input item in a dataset is a non-negative integer. If a line contains two or more input items, they are separated by a space. 

n is the number of coach tickets. You can assume that the number of tickets is between 1 and 8. m is the number of cities in the network. You can assume that the number of cities is between 2 and 30. p is the number of roads between cities, which may be zero. 

a is the city index of the starting city. b is the city index of the destination city. a is not equal to b. You can assume that all city indices in a dataset (including the above two) are between 1 and m. 

The second line of a dataset gives the details of coach tickets. ti is the number of horses specified in the i-th coach ticket (1<=i<=n). You can assume that the number of horses is between 1 and 10. 

The following p lines give the details of roads between cities. The i-th road connects two cities with city indices xi and yi, and has a distance zi (1<=i<=p). You can assume that the distance is between 1 and 100. 

No two roads connect the same pair of cities. A road never connects a city with itself. Each road can be traveled in both directions.