Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
WA,请大家帮忙看一下。#include <iostream> using namespace std; int best; int n,r; int main(void) { char cities[200][31]; //城市名字 int cityNum = 0; //已输入城市的个数 int map[200][199]; //记载城间路上的最大载重限制 char cityA[31]; char cityB[31]; int dis=0; int GetID(const char*, char [200][31], int&); int count = 1; while (1) { cin >> n >> r; if (n == 0 && r == 0) break; if (count-1) cout << endl << endl; memset(cities, ' ', sizeof(cities)); memset(map, -1, sizeof(map)); cityNum = 0; for (int i=0; i<r; i++) { cin >> cityA >> cityB >> dis; int idA = GetID(cityA, cities, cityNum); //将城市名字符串对应成数字 int idB = GetID(cityB, cities, cityNum); map[idA][idB] = dis; //记录 权值。 map[idB][idA] = dis; } cin >> cityA >> cityB; int idA = GetID(cityA, cities, cityNum); int idB = GetID(cityB, cities, cityNum); if (idA == idB) { best = 10000; } else { best = 0; void Heavy(int, int, int[][199], int); Heavy(idA, idB, map, 20000); //计算最大载重量 } cout<<"Scenario #"<<count++<<endl<<best<<" tons"; } return 0; } //dfs. void Heavy(int idA, int idB, int map[][199], int weight) { if (map[idA][idB] > 0) { best = (map[idA][idB] < weight ? map[idA][idB] : weight); return; } for (int i=0; i<n; i++) { if (map[idA][i] < 0) continue; int tWei = weight; if (tWei > map[idA][i]) tWei = map[idA][i]; int tt = map[idA][i]; map[idA][i] = map[i][idA] = -1; Heavy(i, idB, map, tWei); map[idA][i] = map[i][idA] = tt; } return; } //将cName对应成相应数字。 即: 若该名字未在cities容器中,则已输入城市数量cityNum为该城市id,cityNum++ int GetID(const char *cName, char cities[200][31], int &cityNum) { for (int i=0; i < cityNum; i++) { for (int j=0; j<31; j++) { if (cName[j] != cities[i][j]) { break; } if (cName[j] == '\0') { return i; } } } cityNum; for (int j=0; j<31; j++) { cities[cityNum][j] = cName[j]; if (cName[j] == '\0') break; } return cityNum++; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator