| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re终于过了,查询中有相同的点,我没有特殊处理,后来者谨慎In Reply To:我的tarjan把usaco测试数据全部过了,为什么还是wa阿?过路的牛人们帮忙看看阿!!不胜感激 Posted by:dut200901102 at 2010-07-03 14:46:47 > >>rt
>
> #include <cstdio>
> #include <cstring>
> #include <algorithm>
> #include <iostream>
>
> using namespace std;
>
> const int MAX=100010;
>
> struct node{
> int to;
> int weigh;
> int next;
> int ans;
> }edges[MAX],que[MAX];
> int box1[MAX],box2[MAX];
> bool flag[MAX],visit[MAX];
>
> int n,m,p[MAX],dis[MAX];
>
> int find_set(int x)
> {
> if(p[x]!=x)
> {
> p[x]=find_set(p[x]);
> }
> return p[x];
> }
>
> void lca(int x)
> {
> int u,e;
> visit[x]=true;
> p[x]=x;
> for(int i=box1[x];i!=-1;i=edges[i].next)
> {
> u=edges[i].to;
> if(!visit[u])
> {
> dis[u]=dis[x]+edges[i].weigh;
> lca(u);
> p[u]=x;
> }
> }
> flag[x]=true;
> for(int i=box2[x];i!=-1;i=que[i].next)
> {
> u=que[i].to;
> if(flag[u])
> {
> e=find_set(u);
> que[i].ans=dis[u]+dis[x]-2*dis[e];
> }
> }
> }
> int main()
> {
> //freopen("in.txt","r",stdin);
> int a,b,d,s,k;
> char c[3];
> while(scanf("%d%d",&n,&m)!=EOF)
> {
> memset(box1,-1,sizeof(box1));
> memset(box2,-1,sizeof(box2));
> memset(flag,false,sizeof(flag));
> memset(visit,false,sizeof(visit));
> s=0;
> for(int i=0;i<m;++i)
> {
> scanf("%d%d%d%s",&a,&b,&d,c);
> edges[s].to=b;
> edges[s].weigh=d;
> edges[s].next=box1[a];
> box1[a]=s++;
> edges[s].to=a;
> edges[s].weigh=d;
> edges[s].next=box1[b];
> box1[b]=s++;
> }
> scanf("%d",&k);
> s=0;
> for(int i=0;i<k;++i)
> {
> scanf("%d%d",&a,&b);
> que[s].to=b;
> que[s].ans=0;
> que[s].next=box2[a];
> box2[a]=s++;
> que[s].to=a;
> que[s].ans=0;
> que[s].next=box2[b];
> box2[b]=s++;
> }
> dis[1]=0;
> lca(1);
> for(int i=0;i<s;++i)
> {
> if(que[i].ans)
> printf("%d\n",que[i].ans);
> }
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator