http://poj.org/problem?id=1502
题意:这是一个下三角,上三角跟下三角图形一致,(若是完整的矩阵的话, 相当于 Map[i][j] 的距离为相对应的数值)这道题也一样。 不同的是 若 显示的为 ‘x’字母时, 说明Map[i][j]为正无穷, 两个点之间不通。 现在的问题是:求1到2, 1到3, .... 1到n 之中哪条路是最长的。
****
英语真的是太渣,表示看懂题意不是一般的难啊, 但是看懂题意后真的好简单 %>_<% 。。
不要再考我英语了,我诚实的说四级还没过 %>_<%。。。
#include#include #include #include #include using namespace std;#define maxn 110#define oo 0x3f3f3f3fint maps[maxn][maxn], v[maxn], dist[maxn];int n;void Init(){ for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) { if(i==j) maps[i][j] = 0; else maps[i][j] = maps[j][i] = oo; } }}void Dij(){ memset(v, 0, sizeof(v)); memset(dist, 0, sizeof(dist)); for(int i=1; i<=n; i++) dist[i] = maps[1][i]; v[1] = 1; for(int i=1; i mins + maps[index][j] && !v[j]) dist[j] = mins + maps[index][j]; } } int ans = 0; for(int i=1; i<=n; i++) ans = max(ans, dist[i]); printf("%d\n", ans);}int main(){ char str[maxn]; int num; while(scanf("%d", &n)!=EOF) { Init(); for(int i=2; i<=n; i++) { for(int j=1; j