zoukankan      html  css  js  c++  java
  • UVA 12284 Digital Matrix

    思路:这个分清楚情况就很好做了。

    注意一点当A的转置等于B的时候(对角线除外),记录A的下三角(或上三角)有cnt个的数与B不同,如果cnt>1则

    不需要额外的步数就可以了,否则当k==2时结果要加2,反之加1.

    代码如下:

     1 #include <cstdio>
     2 #include <iostream>
     3 #define M 105
     4 using namespace std;
     5 int a[M][M],b[M][M],n;
     6 bool is()
     7 {
     8     for(int i=0;i<n;i++)
     9         for(int j=0;j<i;j++)
    10             if(b[i][j]!=b[j][i]) return 0;
    11     return 1;
    12 }
    13 bool ab()
    14 {
    15     int cnt=0;
    16     for(int i=0;i<n;i++)
    17     for(int j=0;j<i;j++){
    18         if(a[i][j]!=b[j][i]||a[j][i]!=b[i][j]) return 0;
    19         if((a[i][j]!=b[i][j]||a[j][i]!=b[j][i])&&b[i][j]!=b[j][i]) cnt++;
    20     }
    21     if(cnt>1) return 0;
    22     return 1;
    23 }
    24 int main()
    25 {
    26     int t,ca=0,k;
    27     scanf("%d",&t);
    28     while(t--){
    29         scanf("%d%d",&n,&k);
    30         for(int i=0;i<n;i++)
    31             for(int j=0;j<n;j++)
    32             scanf("%d",&a[i][j]);
    33         int ans=0;
    34         for(int i=0;i<n;i++)
    35         for(int j=0;j<n;j++){
    36             scanf("%d",&b[i][j]);
    37             ans+=(a[i][j]!=b[i][j]);
    38         }
    39         printf("Case %d: ",++ca);
    40         if(!ans) printf("0
    ");
    41         else if(is()) printf("-1
    ");
    42         else if(ab()){
    43             if(k==2&&n==2) printf("-1
    ");
    44             else if(k==2) printf("%d
    ",ans+2);
    45             else printf("%d
    ",ans+1);
    46         }
    47         else printf("%d
    ",ans);
    48     }
    49 }
    View Code
  • 相关阅读:
    Appium学习笔记(一)--安装与配置
    google软件测试之道--读后笔记
    Web测试中常见分享问题
    730工作总结
    Java源码分析系列
    LeetCode 21 -- Merge Two Sorted Lists
    LeetCode 20 -- Valid Parentheses
    LeetCode 15 -- 3Sum
    LeetCode 11 -- Container With Most Water
    ASP.NET Core MVC中Hangfire及EF Core的简单使用
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3352444.html
Copyright © 2011-2022 走看看