郑轻 1478 Metric Matrice (第五届河南省赛)

1478: Metric Matrice

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 72 Solved: 37

SubmitStatusWeb Board

Description

nt j, determine if the distance matrix is "a metric" or not.

A distance matrix a[i][j] is a metric if and only if

1. a[i][i] = 0

2. a[i][j]> 0 if i != j

3. a[i][j] = a[j][i]

4. a[i][j] + a[j][k] >= a[i][k] i 1 j 1 k

Input

The first line of input gives a single integer, 1 ≤ N ≤ 5, the number of test cases. Then follow, for each test case,

* Line 1: One integer, N, the rows and number of columns, 2 <= N <= 30

* Line 2..N+1: N lines, each with N space-separated integers

(-32000 <=each integer <= 32000).

Output

Output for each test case , a single line with a single digit, which is the lowest digit of the possible facts on this list:

* 0: The matrix is a metric

* 1: The matrix is not a metric, it violates rule 1 above

* 2: The matrix is not a metric, it violates rule 2 above

* 3: The matrix is not a metric, it violates rule 3 above

* 4: The matrix is not a metric, it violates rule 4 above

Sample Input

2

4

0 1 2 3

1 0 1 2

2 1 0 1

3 2 1 0

2

0 3

2 0

Sample Output

0

3

HINT

Source

第五届河南省大学生程序设计竞赛

题解:这道题是说:给出一个矩阵,看是否是符合规则的。如果均满足下列四种规则,输出0.

如果不满足1输出1

如果不满足2输出2

如果不满足3输出3

如果不满足4输出4

代码:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>

using namespace std;
const int maxx=1005;
int a[105][105];
int n;
int x1,x2,x3,x4;
///是否符合第一种
inline int f1()
{
     x1=1;
    for(int i=0;i<n;i++)
    {
        if(a[i][i]!=0)
            {
                x1=0;
               return x1;
            }

    }
    return x1;
}
///是否符合第二种
inline int f2()
{
    x2=1;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(i!=j)
            {
              if(a[i][j]<=0)
                {
                    x2=0;
                  return x2;
                }
            }
        }
    }
    return x2;
}
///是否符合第三种
inline int f3()
{
    x3=1;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(a[i][j]!=a[j][i])

                {
                    x3=0;
                    return x3;
                }

        }
    }
    return x3;
}
///是否符合第四种
inline int f4()
{
    x4=1;
   for(int i=0;i<n;i++)
   {
       for(int j=0;j<n;j++)
       {
           for(int k=0;k<n;k++)
           {
               if(i!=j&&i!=k&&j!=k)
               if(a[i][j]+a[j][k]<a[i][k])
               {
                   x4=0;
                   return x4;
               }
           }
       }
   }
   return x4;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                scanf("%d",&a[i][j]);
            }
        }
        int a1=f1();
        int a2=f2();
        int a3=f3();
        int a4=f4();
        if(a1==1&&a2==1&&a3==1&&a4==1)
            printf("0\n");
            else
                if(a1==0)
                printf("1\n");
        else
            if(a2==0)
            printf("2\n");
        else
            if(a3==0)
            printf("3\n");
        else
            if(a4==0)
            printf("4\n");

    }

    return 0;
}
时间: 2024-11-14 11:58:29

郑轻 1478 Metric Matrice (第五届河南省赛)的相关文章

郑轻第六届校赛 -- 部分题解

1427: 数字转换 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 379  Solved: 93 SubmitStatusWeb Board Description 老师交给小明一个任务,有两个数字x和y(x<y),通过以下两种操作:一.将x乘以2:二.将x的值加上1.小明希望能通过尽可能少的操作来完成这个任务,但是不知道怎么做,现在请大家来帮帮他的忙吧. Input 两个整数x,y(0<=x<y<=10^6). Output 一

第五届河南省acm省赛 最强DE 战斗力

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这

??第七届河南省赛B.海岛争霸(并差集)

B.海岛争霸 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 130  Solved: 48 [Submit][Status][Web Board] Description 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王. 这是一个由海洋.岛屿和海盗组成的危险世界.杰克船长准备从自己所占领的岛屿A开始征程,逐个去占领每一个岛屿.面对危

山东省第五届省赛总结

省赛终于过去了.感觉准备最充分的一次比赛比的最差,心里很伤心. 省赛之前,目标一直很明确,拿个金牌,向冠军冲刺.没想到最后拿了一个银牌.真的是讽刺. 热身赛的时候,一开始机器很搓.根本运行不了程序.然后就找来技术人员.技术人员搞了半个小时,也没搞出来个毛.最后还是机器自己莫名其妙的能用了. 然后我就上手敲B的随机题.没想到两次就过了,太开心了.然后专心看c题.一开始看出来的做法不对.后来离结束还有一点点的时候,终于想起来了正解.然后跟 scf一说,scf接着上手一敲.结果很对.然后果断交,然后就

第七届河南省赛H.Rectangles(lis)

10396: H.Rectangles Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 229  Solved: 33 [Submit][Status][Web Board] Description Given N (4 <= N <= 100)  rectangles and the lengths of their sides ( integers in the range 1..1,000), write a program that fi

第七届河南省赛A.物资调度(dfs)

10401: A.物资调度 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 95  Solved: 54 [Submit][Status][Web Board] Description 某地区发生了地震,灾区已经非常困难,灾民急需一些帐篷.衣物.食品和血浆等物资.可通往灾区的道路到处都是塌方,70%以上的路面损坏,桥梁全部被毁.国家立即启动应急预案,展开史上最大强度非作战空运行动,准备向灾区空投急需物资. 一方有难,八方支援.现在已知有N个地方分别

第七届河南省赛10403: D.山区修路(dp)

10403: D.山区修路 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 69  Solved: 23 [Submit][Status][Web Board] Description 某山区的孩子们上学必须经过一条凹凸不平的土路,每当下雨天,孩子们非常艰难.现在村里走出来的Dr. Kong决定募捐资金重新修建着条路.由于资金有限,为了降低成本,对修好后的路面高度只能做到单调上升或单调下降. 为了便于修路,我们将整个土路分成了N段,每段路面的高度分

第八届河南省赛D.引水工程(kruthcra+prime)

D.引水工程 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 118  Solved: 41 [Submit][Status][Web Board] Description 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性工程,事关中华民族长远发展. “南水北调工程”,旨在缓解中国华北和西北地区水资源短缺的国家战略性工程.就是把中国长江流域丰盈的水资源抽调一部分送到华北和西北地区.我国南涝北

NYOJ - 541 - 最强DE 战斗力 (第五届河南省程序设计大赛--大数!!)

最强DE 战斗力 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 春秋战国时期,赵国地大物博,资源非常丰富,人民安居乐业.但许多国家对它虎视眈眈,准备联合起来对赵国发起一场战争. 显然,面对多个国家的部队去作战,赵国的兵力明显处于劣势.战斗力是决定战争成败的关键因素,一般来说,一支部队的战斗力与部队的兵力成正比.但当把一支部队分成若干个作战队伍时,这个部队的战斗力就会大大的增强. 一支部队的战斗力是可以通过以下两个规则计算出来的: 1.若一支作战队伍的兵力为N,则这