• hdu 4707 bellman


    最短路的优先队列做法:
    #include<stdio.h>
    #include<queue>
    #include<string.h>
    #define N  100010
    #define inf 0x3fffffff
    using namespace std;
    int first[N],next[N],u[N],v[N],w[N],d[N];
    int main()
    {
    int t,i,e,cnt,dis,n;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&n,&dis);
    for(i=0;i<n;i++)
    first[i]=-1;
    for(i=0;i<n-1;i++)
    {
    scanf("%d%d",&u[i],&v[i]);
    w[i]=1;
    next[i]=first[u[i]];
    first[u[i]]=i;
    }
    priority_queue<int ,vector<int>,greater<int> >q;
            int done[N];
    for(i=0;i<n;i++)
    d[i]=(i==0?0:inf);
    memset(done ,0,sizeof(done));
    q.push(0);
    while(!q.empty())
    {
    int u=q.top();
    q.pop();
    if(done[u]) continue;
    done[u]=1;
    for(e=first[u];e!=-1;e=next[e])
       if(d[v[e]]>d[u]+w[e])
    {
    d[v[e]]=d[u]+w[e];
    q.push(v[e]);
    }
    }
    cnt=0;
    for(i=0;i<n;i++)
    {
    if(d[i]>dis)
    cnt++;
    }
    printf("%d ",cnt);
    }
    return 0;
    }




    bellman-ford()写法,普通的队列写法:
    #include<stdio.h>
    #include<queue>
    #include<string.h>
    #define N  100010
    #define inf 0x3fffffff
    using namespace std;
    int first[N],next[N],u[N],v[N],w[N],d[N];
    int main()
    {
    int t,i,e,cnt,dis,n;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&n,&dis);
    for(i=0;i<n;i++)
    first[i]=-1;
    for(i=0;i<n-1;i++)
    {
    scanf("%d%d",&u[i],&v[i]);
    w[i]=1;
    next[i]=first[u[i]];
    first[u[i]]=i;
    }
      queue<int>q;
            int done[N];
    for(i=0;i<n;i++)
    d[i]=(i==0?0:inf);
    memset(done ,0,sizeof(done));
    q.push(0);
    while(!q.empty())
    {
    int u=q.front();
    q.pop();
    done[u]=0;
    for(e=first[u];e!=-1;e=next[e])
       if(d[v[e]]>d[u]+w[e])
    {
    d[v[e]]=d[u]+w[e];
    if(!done[v[e]])
    {
         done[v[e]]=1;
     q.push(v[e]);
    }
    }
    }
    cnt=0;
    for(i=0;i<n;i++)
    {
    if(d[i]>dis)
    cnt++;
    }
    printf("%d ",cnt);
    }
    return 0;
    }



  • 相关阅读:
    个人项目作业
    第一次博客作业
    我和计算机的恩怨情仇
    OO第四单元总结暨学期总结
    OO第三单元总结
    OO第二单元总结
    OO第一单元总结
    提问回顾与个人总结
    [技术博客]使用pylint实现django项目的代码风格检查
    BUAA软工-结对项目作业
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410843.html
Copyright © 2020-2023  润新知