P2984 [USACO10FEB] Chocolate Giving S
题目描述FJ 有BBB头奶牛(1≤B≤25000)(1\le B\le 25000)(1≤B≤25000)有N(2×B≤N≤50000)N(2\times B\le N\le 50000)N(2×B≤N≤50000)个农场编号111到NNN有M(N−1≤M≤100000)M(N-1\le M\le 100000)M(N−1≤M≤100000)条双向边第iii条边连接农场RiR_iRi和Si(1≤Ri≤N,1≤Si≤N)S_i(1\le R_i\le N, 1\le S_i\le N)Si(1≤Ri≤N,1≤Si≤N)该边的长度是Li(1≤Li≤2000)L_i(1\le L_i\le 2000)Li(1≤Li≤2000)。居住在农场PiP_iPi的奶牛 A(1≤Pi≤N)(1\le P_i\le N)(1≤Pi≤N)想送一份新年礼物给居住在农场Qi(1≤Qi≤N)Q_i(1\le Q_i\le N)Qi(1≤Qi≤N)的奶牛 B但是奶牛 A 必须先到 FJ居住在编号111的农场那里取礼物然后再送给奶牛 B。你的任务是奶牛 A 至少需要走多远的路程输入格式第一行三个整数N,M,BN,M,BN,M,B。第222至M1M1M1行每行333个整数Ri,Si,LiR_i,S_i,L_iRi,Si,Li。第M2M2M2至MB1MB1MB1行进行BBB次询问每行222个整数Pi,QiP_i ,Q_iPi,Qi。输出格式每次询问输出一个整数即答案。输入输出样例 #1输入 #16 7 3 1 2 3 5 4 3 3 1 1 6 1 9 3 4 2 1 4 4 3 2 2 2 4 5 1 3 6输出 #16 6 10思路跟最短路模板差不多只需要在输出时输出111到AAA和111到BBB的和即可。代码#includebits/stdc.husingnamespacestd;constintmaxn1000001;intb,g[maxn],n,m,dis[maxn],to[maxn],cnt,head[maxn],p,Next[maxn],w[maxn],minnINT_MAX;boolvis[maxn];queueintq;voidadd(intu,intv,intl){cnt;to[cnt]v;Next[cnt]head[u];head[u]cnt;w[cnt]l;}voidspfa(){for(inti1;in;i)dis[i]INT_MAX;dis[1]0;q.push(1);vis[1]1;while(!q.empty()){intuq.front();q.pop();vis[u]0;for(intihead[u];i;iNext[i]){intvto[i];if(dis[v]dis[u]w[i]){dis[v]dis[u]w[i];if(!vis[v]){q.push(v);vis[v]1;}}}}}intmain(){cinnmb;for(inti1;im;i){intx,y,z;cinxyz;add(x,y,z);add(y,x,z);}spfa();for(inti1;ib;i){intx,y;cinxy;coutdis[x]dis[y]\n;}return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2408609.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!