题目描述 :
现在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;
}