USACO 2010 Feb Chocolate Giving 领取巧克力
来源:互联网 发布:用ss网络会不会被监控 编辑:程序博客网 时间:2024/04/26 03:34
这道题其实就是堆优化的Dijkstra。不用堆优化的话是会超时的。
#include<cstdio>#include<cstdlib>#define PROBNAME "cgiving"const int MAXN=50000;const int MAXM=100000;const int MAXB=25000;const int INF=2000*MAXN*2+1;int n,m,b;int k,first[MAXN+2],next[MAXM*2+10],head[MAXM*2+10],tail[MAXM*2+10],c[MAXM*2+10];int q[MAXN+2],rd[MAXN+2],size;int d[MAXN+2];void open_file(void){freopen(PROBNAME".in","r",stdin);freopen(PROBNAME".out","w",stdout);}int getint(void){int a;scanf("%d",&a);return a;}void addedge(int u,int v,int w){k++;next[k]=first[u];first[u]=k;head[k]=u;tail[k]=v;c[k]=w;}void init(void){n=getint();m=getint();b=getint();for(int i=1;i<=m;i++){int r=getint(),s=getint(),l=getint();addedge(r,s,l);addedge(s,r,l);}}void swap(int i, int j) { int u = q[i]; int v = q[j]; rd[u] = j; rd[v] = i; q[i] = v; q[j] = u;}void up(int i){int j=i/2;if(j>0&&d[q[i]]<d[q[j]]){swap(i,j);up(j);}}void down(int i){int j=i*2;if(j+1<=size&&d[q[j]]>d[q[j+1]])j++;if(j<=size&&d[q[i]]>d[q[j]]){swap(i,j);down(j);}}void push(int x){q[++size]=x;rd[x]=size;up(size);}void pop(void){swap(1,size--);down(1);}void dijkstra(void){for(int i=2;i<=n;i++){d[i]=INF;}for(int i=1;i<=n;i++){push(i);}while(size){int u=q[1];pop();for(int e=first[u];e;e=next[e]){int v=tail[e];if(d[v]>d[u]+c[e]){d[v]=d[u]+c[e];up(rd[v]);}}}}void solve(void){dijkstra();}void output(void){for(int i=1;i<=b;i++){int p=getint(),q=getint();printf("%d\n",d[p]+d[q]);}}void close_file(void){fclose(stdin);fclose(stdout);}int main(){open_file();init();solve();output();close_file();return 0;}
0 0
- USACO 2010 Feb Chocolate Giving 领取巧克力
- 【USACO FEB 2010 SILVER】吃巧克力(Chocolate Eating)
- USACO 2010 Feb Silver 3.Chocolate Eating 吃巧克力
- chocolate giving[usaco2010 Feb]
- 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
- cqbzoj2402【USACO FEB 2010 SILVER】吃巧克力
- 洛谷P2984 [USACO10FEB]给巧克力Chocolate Giving
- BZOJ 2015: [Usaco2010 Feb]Chocolate Giving spfa
- bzoj 2015: [Usaco2010 Feb]Chocolate Giving
- bzoj2015 [Usaco2010 Feb]Chocolate Giving(最短路裸题)
- BNUOJ 4157 Chocolate Giving
- USACO 2010 FEB Silver题解
- uva1099 - Sharing Chocolate 切巧克力
- bzoj2014 [Usaco2010 Feb]Chocolate Buying
- USACO 2005 Nov Asteroids 小行星群
- USACO 2009 Mar Earthquake Damage 2 地震破坏
- Programming Hive Chapter1-6 读书笔记
- USACO 2007 OPEN Dining 奶牛晚宴
- Programming HIVE Chapter 7-14 读书笔记
- USACO 2010 Feb Chocolate Giving 领取巧克力
- hadoop namenode -format格式化名称节点时出错
- USACO 2009 Feb Revamping Trails 道路翻新
- 怒删了很多东西
- [CrackCode] 5.2 Print the binary representation
- USACO 2009 Feb Cruel Math Teacher 数的幂次
- [WebKit]WebCore之页面加载的设计与实现(二)
- POJ 3107 Godfather
- IDA + GDBServer实现iPhone程序远程调试