Wannafly挑战赛20 E特征值

题目描述 :
现在Applese打开了他的线性代数书,看到了一个01矩阵,他想要知道这个01矩阵是否所有特征值都为正实数


输入描述:
输入包括若干行
第一行包括一个数T, 表示接了下来有T 组数据
对于每一组数据,第一行包括一个整数n,表示矩阵大小
接下来n行,每行包括n个数,表示这个01矩阵中的数,数据保证合法
T ≤ 10, 1 ≤ n ≤ 100


输出描述:
输出包括T行
每一行需要输出一个YES或NO,表示该01矩阵是否所有特征值都为正实数


输入
1
3
1 0 0
1 1 0
1 1 1


输出
YES

官方题解:

 代码来自:dreamoon  

const int SIZE = 100;
int AA[SIZE][SIZE];
int main(){
    CASET{
        int n; R(n);
        REP(i,n){
            REP(j,n)R(AA[i][j]);
        }
        bool fail=0;
        REP(i,n){
            if(!AA[i][i])fail=1;
            AA[i][i]=0;
        }
        if(fail){
            W("NO");
            continue;
        }
        REP(k,n)REP(i,n)REP(j,n){
            AA[i][j]|=AA[i][k]&AA[k][j];
        }
        REP(i,n){
            if(AA[i][i])fail=1;
        }
        W(fail?"NO":"YES");
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值