期望得分:0+60+60=120

实际得分:0+30+60=90

 

2017北京国庆刷题Day5 morning

令g=gcd(X11,X12,X13……)

则行列式可能为D的充要条件为g|D

1、g|D为必要条件:

     由定义来算行列式的时候,每一项都要从第一行里取一个数,所以g|D

2、g|D为充分条件:

    首先可以通过矩阵的初等变换,将矩阵X消成对角矩阵

2017北京国庆刷题Day5 morning

  其中,X11* X22 * X33* X44=D

  上述矩阵等价于

  2017北京国庆刷题Day5 morning

 把D拆为g*D/g

 还原到矩阵中

  2017北京国庆刷题Day5 morning    X22=2017北京国庆刷题Day5 morning

此矩阵模拟先前初等变换即可还原为原矩阵X

 

#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cmath>

using namespace std;

int gcd(int a,int b) { return !b ? a : gcd(b,a%b); }

bool solve() 
{
    int n,m,x,y;  
    scanf("%d%d",&n,&m);
    x=0;
    for (int i=1;i<=n;++i) 
    {
        scanf("%d",&y);
        x=gcd(x,abs(y));
    }
    if (n==1) return y==m;
    if (!x) return !m;
    return !(abs(m)%x);
}

int main() 
{
    freopen("det.in","r",stdin);
    freopen("det.out","w",stdout);
    int t;
    scanf("%d", &t);
    while(t--)
        if (solve()) printf("Y\n");
        else printf("N\n");
}
View Code

相关文章:

  • 2021-10-12
  • 2022-02-04
  • 2021-07-14
  • 2021-12-11
  • 2022-02-08
  • 2022-02-11
  • 2022-01-03
  • 2022-02-24
猜你喜欢
  • 2021-11-13
  • 2021-07-30
  • 2021-10-25
  • 2022-02-13
  • 2021-10-29
  • 2021-11-04
  • 2021-07-30
相关资源
相似解决方案