zoukankan      html  css  js  c++  java
  • pku1986

    这题目跟杭电的2586很像,呵呵,应该说,本来这道是先做的,但是LAC不会,所以就先做了那道基础题

    好悲剧呀,在代码里面加了一个测试输出,结果忘记删了,还固执的贡献了几个WA,题目中给的方向是没用的,读进来就可以

    因为代码基本一样,具体解释见hdu2586

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #define MAXN 40010
    struct node
    {
    	int vex,next,dis;
    }g[MAXN*2],q[10010*2];
    int f[MAXN],first[MAXN],head[MAXN],n,m;
    int visited[MAXN],away[MAXN];
    int find(int x)
    {
    	if(x!=f[x])
    		f[x]=find(f[x]);
    	return f[x];
    }
    void add(int v,int w,int d,int &j)
    {
    	g[j].dis=d;
    	g[j].vex=w;
    	g[j].next=first[v];
    	first[v]=j++;
    }
    void add2(int v,int w,int &j)
    {
    	q[j].dis=-1;
    	q[j].vex=w;
    	q[j].next=head[v];
    	head[v]=j++;
    }
    void DFS(int v,int d)
    {
    	visited[v]=1;
    	f[v]=v;
    	away[v]=d;
    	int i;
    	for(i=head[v];i!=-1;i=q[i].next)
    	{
    		if(visited[q[i].vex])
    		{
    			q[i].dis=away[v]+away[q[i].vex]-2*away[find(q[i].vex)];
    		}
    	}
    	for(i=first[v];i!=-1;i=g[i].next)
    	{
    		if(!visited[g[i].vex])
    		{
    			DFS(g[i].vex,d+g[i].dis);
    			f[g[i].vex]=v;
    		}
    	}
    }
    int main()
    {
    	int i,j,a,b,d,k;
    	char ch[2];
    	scanf("%d %d",&n,&m);
    		memset(first,-1,sizeof(first));
    		memset(head,-1,sizeof(head));
    		memset(visited,0,sizeof(visited));
    		for(i=1,j=0;i<=m;i++)
    		{
    			scanf("%d %d %d %s",&a,&b,&d,ch);
    			add(a,b,d,j);
    			add(b,a,d,j);
    		}
    		scanf("%d",&k);
    		for(i=j=0;i<k;i++)
    		{
    			scanf("%d %d",&a,&b);
    			/*if(a==b)
    			{
    				q[j].dis=0;
    				j+=2;
    				continue;
    			}*/
    			add2(a,b,j);
    			add2(b,a,j);
    		}
    		DFS(1,0);
    		for(i=j=0;i<k;i++,j+=2)
    		{
    			if(q[j].dis!=-1)
    				printf("%d\n",q[j].dis);
    			else 
    				printf("%d\n",q[j+1].dis);
    		}
    	return 0;
    }
    
  • 相关阅读:
    hashlib模块
    logging模块
    Python的富比较方法
    格式化符号说明
    __str__与__repr__区别
    2014-07-18&nbsp;10:25

    2014-07-17&nbsp;17:04
    2014-07-17&nbsp;16:44
    2014-07-16&nbsp;15:54
  • 原文地址:https://www.cnblogs.com/nanke/p/2040301.html
Copyright © 2011-2022 走看看