签到题
题目描述
本题没有任何输入,请你输出
NUC2020!!!
NUC2020!!!
NUC2020!!!
输入描述:
无
输出描述:
NUC2020!!!
NUC2020!!!
NUC2020!!!
#include<bits/stdc++.h> using namespace std; int main() { printf("NUC2020!!!\n"); printf("NUC2020!!!\n"); printf("NUC2020!!!\n"); }
链接:https://ac.nowcoder.com/acm/contest/5188/E
来源:牛客网
题目描述
已知A是一个n阶方阵,且A^k=0,E是一个n阶单位矩阵,求(E+A+A^2+……A^k-1)的逆
输入描述:
第一行输入两个正整数n,k,表示矩阵的阶数和幂。2<=n<=1000,k<=1e18
接下来n行,读入矩阵A,每个数为int类型整数
输出描述:
一个矩阵,表示(E+A+A^2+……A^k-1)的逆
示例1
输入
复制
3 4 1 2 3 1 -2 1 7 -26 1
输出
复制
0 -2 -3 -1 3 -1 -7 26 0
看了大佬的代码才知道这是可以看成是一个等比,利用等比数列求和并且化简,但要注意的是,题目求的是逆矩阵,我们知道一个矩阵乘以它的逆矩阵等于一个单位阵,所以可以根据这个公式最后化简得B=A-E其中A是求出的等比数列,B是A的逆矩阵,E是对应的单位矩阵,最后可以得出其实就是全体取负,对角线加一就行
#include <bits/stdc++.h> using namespace std; const int N = 1e3 + 7; int a[N][N]; int n, m; int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) scanf("%d", &a[i][j]); for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) printf("%d%c", (i == j) - a[i][j],j==n?'\n':' '); return 0; }