zoukankan      html  css  js  c++  java
  • poj 2983 Is the Information Reliable 夜

    http://poj.org/problem?id=2983

    假设以最北为超级源点

    对于 P north south x 代表south 在 north 的南边 x 光年处

    则 north 在south 南边的 -x 光年处

    如果矛盾的话 则及存在负环 也存在正环 我们把-x 这种情况也保存 是为了下面

    V north south 它是至少 1 光年 如果它使问题矛盾的话 则可利用上面保存的 -x 的情况

    让我们发现正环

    所以综合以上 :P 情况 x 和-x 情况都保存,v 只保存 x=1

    然后用Bellman-Ford 查找是否有正环即可

    代码如下

    #include<iostream>
    #include<cmath>
    #include<string>
    #include<algorithm>
    #include<queue>
    #include<cstring>
    #include<cstdio>
    
    using namespace std;
    const int N=1005;
    const int M=100005;
    struct node
    {
        int north,south,x;
    }mem[M*2];
    int dis[N];
    int main()
    {
       int n,m;
       while(scanf("%d %d",&n,&m)!=EOF)
       {
           char ctemp;
           int I=0;
           for(int i=0;i<m;++i)
           {
               getchar();
               scanf("%c",&ctemp);
               if(ctemp=='P')
               {
                   scanf("%d %d %d",&mem[I].north,&mem[I].south,&mem[I].x);++I;
                   mem[I].south=mem[I-1].north;mem[I].north=mem[I-1].south;mem[I].x=-mem[I-1].x;++I;
               }
               else
               {
                   scanf("%d %d",&mem[I].north,&mem[I].south); mem[I].x=1;++I;
               }
           }
           memset(dis,0,sizeof(dis));
           bool OK=false;
           for(int w=0;w<n;++w)
           {
               OK=true;
               for(int i=0;i<I;++i)
               {
                   if(dis[mem[i].south]<dis[mem[i].north]+mem[i].x)
                   {
                       OK=false;dis[mem[i].south]=dis[mem[i].north]+mem[i].x;
                   }
               }
    
               if(OK==true)
               break;
           }
           if(OK==true)
           printf("Reliable\n");
           else
           printf("Unreliable\n");
       }
       return 0;
    }
    
  • 相关阅读:
    bash八大扩展一网打尽
    MySQL命令行导出数据库
    Windows 7上的DirectX 11.1
    把KlayGE嵌入其他GUI框架
    KlayGE的资源载入系统
    学习路漫漫……
    写下我的第一篇Post,呵呵
    今天学习:CSS中的类class和标识id选择符(.和#号)
    Remove Duplicates from Unsorted List
    2012 TODO List
  • 原文地址:https://www.cnblogs.com/liulangye/p/2511368.html
Copyright © 2011-2022 走看看