郁闷,一直TLE,看了一下discuss,把cout、cin改成printf和scanf就好了 其实这个很早就知道,但就是没想起来。T最大可达40000,cout、cin效率的损失一下就显现出来了 // pku3615 Cow Hurdles #include <cstdio> #include <string> using namespace std; const long MAX_N = 300; const long MAX_M = 25000; const long INFINIT = -1; long matrix[MAX_N+1][MAX_N+1]; long N, M, T; long n, m, t; int main() { long i, j, k; memset(matrix, -1, sizeof(matrix)); scanf("%ld %ld %ld", &N, &M, &T); for (m=1; m<=M; m++) { long s, e, h; scanf("%ld %ld %ld", &s, &e, &h); matrix[s][e] = h; } for (k=1; k<=N; k++) { for (i=1; i<=N; i++) { for (j=1; j<=N; j++) { if (i==j || k==i || k==j) continue; const long &x = matrix[i][k], &y = matrix[k][j]; if (INFINIT==x || INFINIT==y) continue; long &d = matrix[i][j]; long h = (x>y) ? x : y; if ( INFINIT==d || h<d ) d = h; } } } for (t=1; t<=T; t++) { long a, b; scanf("%ld %ld", &a, &b); printf("%ld/n", matrix[a][b]); } return 0; }