アルゴリズム入門——greedy algorithmアルゴリズム、貪欲アルゴリズムpython実現
1084 ワード
最小のstationsですべてのstatesを上書きします.needed=set(["mt","wa","or","id","nv","ut","ca","az"])
stations={}
stations["kone"]=set(["id","nv","ut"])
stations["ktwo"]=set(["wa","id","mt"])
stations["kthree"]=set(["or","nv","ca"])
stations["kfour"]=set(["nv","ut"])
stations["kfive"]=set(["ca","az"])
states_needed=set(["mt","wa","or","id","nv","ut","ca","az"])
final_station=set()
while states_needed:
best_station=None
states_convered=set()
for station,states in stations.items():# ,
convered=states_needed & states
if len(convered)>len(states_convered):
best_station=station
states_convered=convered
states_needed-=states_convered
final_station.add(best_station)