BNUOJ 4157 Chocolate Giving
来源:互联网 发布:泰山石敢当 知乎 编辑:程序博客网 时间:2024/03/29 23:29
求最短路。
给定一个无向图,后给出一些顶点对<a,b>,求<1,a>+<1,b>的最小值。
用spfa求一次最短路就可以了。
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>using namespace std;struct edge{ int u; int v; int w;};edge e[1002000];vector<int> v[1002000];queue<int> q;bool inque[1002000];int le,dist[1002000];int spfa(int sta,int tar){ int t,i,te; while (!q.empty()) q.pop(); memset(inque,false,sizeof(inque)); memset(dist,127,sizeof(dist)); q.push(sta); inque[sta]=true; dist[sta]=0; while (!q.empty()) { t=q.front(); q.pop(); inque[t]=false; for (i=0; i<v[t].size(); i++) { te=v[t][i]; if (dist[e[te].v] > dist[t]+e[te].w) { dist[e[te].v]=dist[t]+e[te].w; if (inque[e[te].v] == false) { inque[e[te].v]=true; q.push(e[te].v); } } } } return dist[tar];}int main(){ int n,t,i,j,t1,t2,t3,q; scanf("%d%d%d",&n,&t,&q); le=0; for (i=1; i<=n; i++) v[i].clear(); for (i=0; i<t; i++) { scanf("%d%d%d",&t1,&t2,&t3); v[t1].push_back(le); e[le].u=t1; e[le].v=t2; e[le].w=t3; le++; v[t2].push_back(le); e[le].u=t2; e[le].v=t1; e[le].w=t3; le++; } spfa(1,n); for (i=0; i<q; i++) { scanf("%d%d",&t1,&t2); printf("%d\n",dist[t1]+dist[t2]); }}
- BNUOJ 4157 Chocolate Giving
- chocolate giving[usaco2010 Feb]
- BNUOJ 4156 Chocolate Buying
- bzoj2015 [Usaco2010 Feb]Chocolate Giving
- [BZOJ2015][Usaco2010 Feb]Chocolate Giving
- [bzoj2015&&Usaco2010 Feb] Chocolate Giving
- 2015: [Usaco2010 Feb]Chocolate Giving
- BZOJ2015 [Usaco2010 Feb]Chocolate Giving
- USACO 2010 Feb Chocolate Giving 领取巧克力
- BZOJ 2015: [Usaco2010 Feb]Chocolate Giving spfa
- bzoj 2015: [Usaco2010 Feb]Chocolate Giving
- 洛谷P2984 [USACO10FEB]给巧克力Chocolate Giving
- bzoj2015 [Usaco2010 Feb]Chocolate Giving(最短路裸题)
- chocolate
- chocolate
- Giving Feedback
- BNUOJ 1777
- BNUOJ 6242
- 编成技术17
- 二叉树的简单运算实现
- 编成技术18
- gridfs
- [ 面试] 12个小球用天平秤3次,找出其中一个重量不同的。
- BNUOJ 4157 Chocolate Giving
- 获取设备环境句柄
- 网络视频监控P2P解决方案
- POJ 1260 Pearls
- LCD屏时序分析
- 字符串分割成二维数组,或加入到Map中
- [面试] 面向对象的约瑟夫环问题的通法 [ C++实现 ] [为夏逸轩师弟作]
- POJ 1950 Dessert
- 工作流审批平台-辅助功能-人员、组织变更