• codevs 3336 电话网络


    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #define maxn 20010
    using namespace std;
    int n,m,k,num,f[maxn],head[maxn],dis[maxn];
    struct node
    {
        int u,v,t,pre;
    }e[maxn];
    int init()
    {
        int x=0;char s=getchar();bool f=0;
        while(s<'0'||s>'9'){if(s=='-')f=1;s=getchar();}
        while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
        if(f)return -x;return x;
    }
    void Add(int from,int to,int dis)
    {
        num++;
        e[num].u=from;
        e[num].v=to;
        e[num].t=dis;
        e[num].pre=head[from];
        head[from]=num;
    }
    void SPFA(int s)
    {
        queue<int>q;
        dis[1]=0;
        f[1]=1;
        q.push(1);
        while(!q.empty())
          {
              int p=q.front();
              q.pop();
              f[p]=0;
              for(int i=head[p];i;i=e[i].pre)
                {
                    int si;
                    if(e[i].t<=s)si=0;else si=1;
                    if(dis[e[i].v]>dis[p]+si)
                      {
                        dis[e[i].v]=dis[p]+si;
                    if(f[e[i].v]==0)
                      {
                        q.push(e[i].v);
                        f[e[i].v]=1;
                      }
                  }
              }
          }
    }
    int main()
    {
        n=init();m=init();k=init();
    
        int x,y,z;
        for(int i=1;i<=m;i++)
          {
              x=init();y=init();z=init();
              Add(x,y,z);
              Add(y,x,z);
          }
        int l=0,r=1000020,ans=-1;
        while(l<=r)
          {
            memset(f,0,sizeof(f));
            memset(dis,127/3,sizeof(dis));
              int mid=(l+r)/2;
              SPFA(mid);
            if(dis[n]<=k)
                {
                    ans=mid;
                    r=mid-1;
              }
            else l=mid+1;
          }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    个人阅读2
    代码复审
    PairProject 总结
    Pairproject 移山之道 阅读随笔和一些问题
    M1/M2个人总结
    团队项目个人总结
    个人阅读作业2
    代码互审
    《移山之道》读后感
    Individual Project
  • 原文地址:https://www.cnblogs.com/yanlifneg/p/5532818.html
Copyright © 2020-2023  润新知