BZOJ1774: [Usaco2009 Dec]Toll 过路费
2017-08-30 13:43
323 查看
n<=250个点m<=10000边无自环图,有点权边权,Q<=10000个询问i到j的最短路。这里的路径长度指路上边权和+路上点权最大值。
n这么小,询问这么多,那就跑跑floyd吧!f[i][j]记最短路,g[i][j]记最短路上最大点权,当f[i][j]+g[i][j]>f[i][k]+f[k][j]+max(g[i][k],g[k][j])时更新答案,注意不要用无效状态即可。
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<math.h> 5 //#include<iostream> 6 using namespace std; 7 8 int n,m,q; 9 #define maxn 261 10 int f[maxn][maxn],g[maxn][maxn]; 11 int x,y,v; 12 const int inf=1e9; 13 int max(int a,int b) {return a>b?a:b;} 14 int min(int a,int b) {return a<b?a:b;} 15 int a[maxn]; 16 struct Point{int id,v;bool operator < (const Point &b) const {return v<b.v;}}p[maxn]; 17 int main() 18 { 19 scanf("%d%d%d",&n,&m,&q); 20 for (int i=1;i<=n;i++) 21 for (int j=1;j<=n;j++) 22 f[i][j]=g[i][j]=inf; 23 for (int i=1;i<=n;i++) 24 { 25 scanf("%d",&a[i]); 26 g[i][i]=p[p[i].id=i].v=a[i]; 27 f[i][i]=0; 28 } 29 sort(p+1,p+1+n); 30 for (int i=1;i<=m;i++) 31 { 32 scanf("%d%d%d",&x,&y,&v); 33 if (v<f[x][y]) f[x][y]=f[y][x]=v; 34 } 35 for (int k=1;k<=n;k++) 36 for (int i=1;i<=n;i++) 37 for (int j=1;j<=n;j++) 38 { 39 int x=p[k].id; 40 f[i][j]=min(f[i][j],f[i][x]+f[x][j]); 41 g[i][j]=min(g[i][j],f[i][j]+max(p[k].v,max(a[i],a[j]))); 42 } 43 for (int i=1;i<=q;i++) 44 { 45 scanf("%d%d",&x,&y); 46 printf("%d\n",g[x][y]); 47 } 48 return 0; 49 }View Code
相关文章推荐
- BZOJ 1774 [Usaco2009 Dec] Toll 过路费
- (bzoj 1774 [Usaco2009 Dec]Toll 过路费)
- bzoj1774 [Usaco2009 Dec]Toll 过路费
- bzoj1774【Usaco2009 Dec】Toll 过路费
- 【BZOJ 1774】 [Usaco2009 Dec]Toll 过路费
- [floyed 增量 离线] BZOJ 1774 [Usaco2009 Dec]Toll 过路费
- BZOJ_1774_[Usaco2009 Dec]Toll 过路费_floyd
- [bzoj 1774][Usaco2009 Dec]Toll 过路费
- 【BZOJ】1774: [Usaco2009 Dec]Toll 过路费
- bzoj 1774: [Usaco2009 Dec]Toll 过路费【排序+Floyd】
- bzoj 1774: [Usaco2009 Dec]Toll 过路费 ——(改)floyd
- Bzoj 1774 [Usaco2009 Dec]Toll 过路费
- [bzoj1774] [Usaco2009 Dec]Toll 过路费
- 1774: [Usaco2009 Dec]Toll 过路费
- bzoj1774 USACO 2009 Dec Gold 2.Cow Toll Paths 过路费 翻译+题解
- USACO 2009 Dec cow toll paths 过路费
- usaco 过路费 Cow Toll Paths, 2009 Dec
- 【USACO】2009 Dec Cow Toll Paths 过路费
- USACO Cow Toll Paths, 2009 Dec
- BZOJ 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者(贪心)