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 |
标程 别人做的#include <stdio.h> #include <string.h> int i, j, k, l, n, c[1010][3], m, r, pos; int t[1010][1010], lt[1010], f[1010]; main() { while(scanf("%d%d",&n,&r)&&n&&r) { for (i = 1; i <= n; i ++){scanf("%d",&c[i][0]);c[i][1] = c[i][0];c[i][2] = 1;} memset(lt,0,sizeof(lt)); f[r] = -1; for (i = 0; i < n-1; i ++) { scanf("%d%d",&j,&k); t[j][lt[j]] = k; lt[j]++; f[k] = j; } while (1) { pos = 0; for (j = 1; j <= n; j ++) if (j!=r&&c[j][2] != 0) { if (pos == 0 || c[pos][1] * c[j][2] < c[pos][2]*c[j][1]){pos = l = j;} } if (pos == 0) break; c[f[l]][0] += c[f[l]][2] * c[l][1]+c[l][0]; c[f[l]][1] += c[l][1]; c[f[l]][2] += c[l][2]; c[l][0] = c[l][1] = c[l][2] = 0; } printf("%d\n",c[r][0]); } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator