• POJ 之 Is the Information Reliable?


    B - Is the Information Reliable?
    Time Limit:3000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u
    Submit Status

    Description

    The galaxy war between the Empire Draco and the Commonwealth of Zibu broke out 3 years ago. Draco established a line of defense called Grot. Grot is a straight line with N defense stations. Because of the cooperation of the stations, Zibu’s Marine Glory cannot march any further but stay outside the line.

    A mystery Information Group X benefits form selling information to both sides of the war. Today you the administrator of Zibu’s Intelligence Department got a piece of information about Grot’s defense stations’ arrangement from Information Group X. Your task is to determine whether the information is reliable.

    The information consists of M tips. Each tip is either precise or vague.

    Precise tip is in the form of P A B X, means defense station A is X light-years north of defense station B.

    Vague tip is in the form of V A B, means defense station A is in the north of defense station B, at least 1 light-year, but the precise distance is unknown.

    Input

    There are several test cases in the input. Each test case starts with two integers N (0 < N ≤ 1000) and M (1 ≤ M ≤ 100000).The next M line each describe a tip, either in precise form or vague form.

    Output

    Output one line for each test case in the input. Output “Reliable” if It is possible to arrange N defense stations satisfying all the M tips, otherwise output “Unreliable”.

    Sample Input

    3 4
    P 1 2 1
    P 2 3 1
    V 1 3
    P 1 3 1
    5 5
    V 1 2
    V 2 3
    V 3 4
    V 4 5
    V 3 5

    Sample Output

    Unreliable
    Reliable

    #include <stdio.h>
    #include <string.h>
    
    int n, m;
    int dis[1003];
    int cnt;
    struct N
    {
        int u;
        int v;
        int w;
    }s[200003];
    
    void add(int u, int v, int w )
    {
        s[cnt].u=u;
        s[cnt].v=v;
        s[cnt++].w=w;
    }
    
    void bellman_ford()
    {
        memset(dis, 0, sizeof(dis));
        int i, j;
        for(i=1; i<=n; i++)
        {
            for(j=0; j<cnt; j++) //检查每条边
            {
                if( dis[s[j].v] > dis[s[j].u] + s[j].w )
                    dis[s[j].v] = dis[s[j].u]+s[j].w ;
            }
        }
        for(i=0; i<cnt; i++)
        {
            if(dis[s[i].v] > dis[s[i].u]+s[i].w )
            break;
        }
        if(i<cnt)
            printf("Unreliable
    ");
        else
            printf("Reliable
    ");
    }
    
    
    int main()
    {
        int i, j;
        char ch;
        int u, v, w;
    
        while(scanf("%d %d%*c", &n, &m)!=EOF)
        {
            cnt=0;
            for(i=0; i<m; i++ )
            {
                ch=getchar();
                while(ch!='P' && ch!='V')
                {
                    ch=getchar();
                }
                if(ch=='P')
                {
                    scanf("%d %d %d", &u, &v, &w );
                    add(u, v, -1*w);
                    add(v, u, w);
                }
                else
                {
                    scanf("%d %d", &u, &v );
                    add(u, v, -1 );
                }
            }
            bellman_ford();
        }
        return 0;
    }
    
  • 相关阅读:
    JAVA学习之常用集合List,Set,Map
    【收藏】SQL多行变一列
    sql 多个字段分组,删除重复记录,保留ID最小的一条
    【转】 JavaScript:history.go() 的妙用(转) 处理post回发后返回
    【转】SQL SERVER 2005中如何获取日期(一个月的最后一日、上个月第一天、最后一天、一年的第一日等等)
    require.context实现自动化导入文件
    Vue进阶——解析V-MODEL
    ES6 的遍历器接口 Iterator
    必须掌握的ES6新特性
    Vue自定义指令获取DOM元素
  • 原文地址:https://www.cnblogs.com/yspworld/p/3930767.html
Copyright © 2020-2023  润新知