资源限制

内存限制:64.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

  给出一个n阶行列式(1<=n<=9),求出它的值。

输入格式

  第一行给出两个正整数n,p;
  接下来n行,每行n个数,表示行列式,数据保证行列式中每个数绝对值不超过2*10^9。

输出格式

  一个数表示行列式的值,答案对p取余(余数需要是非负数)。

样例输入

2 2
5 -4
2 -1

样例输出

1

部分数据范围

  对于20%的数据n<=2
  对于40%的数据n<=3
  对于100%的数据n<=9,p<=40000。

解法:本来以为要靠后面的提示才能AC的,甚至我刚开始还考虑了行列式计算出负数取余可能会出问题(python负数的取余操作会向下进一,例:-123%10 = -123 - 10 * (-123 // 10) = -123 - 10 * (-13) = 7,但是不知道为什么好像这题并不用注意这个),但蓝桥杯暴力杯的名称属实名不虚传,直接暴力递归就完事了。

本题使用行列式的解法为代数余子式法,不懂的话自行学习线性代数(我数学不好就不教了)

import copy# 行列式计算:使用递归的方法对低阶行列式进行计算
def cal_det(l):result = 0if len(l) == 1:return l[0][0]if len(l) == 2:return l[0][0] * l[1][1] - l[0][1] * l[1][0]s = l.pop(0)# 代数余子式计算方法# 本题全部以第一行展开:det(x) = Ai1*ai1 + ... + Ain*ain# Aij = (-1) ** (i + j) * Mij# Mij指划去了第i行和第j列的行列式for i in range(len(s)):l1 = copy.deepcopy(l)  # 必须使用深拷贝,浅拷贝只能使第一层正常计算for t in range(len(l1)):del l1[t][i]result += (s[i] * ((-1) ** (i + 2)) * cal_det(l1)) % preturn result % pn, p = list(map(int, input().split()))
lis = []
for i in range(n):lis.append(list(map(int, input().split())))
print(cal_det(lis) % p)

蓝桥杯 算法训练 ALGO-932低阶行列式计算 python解法相关推荐

  1. 蓝桥杯算法训练 数字游戏 组合数和暴力两种解法

    试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...

  2. 蓝桥杯——算法训练——进击的青蛙

    问题描述 青蛙X正准备跳过一座桥,这座桥被划分为N段,记青蛙所在的起始点为0,桥的末端为N.桥上的一些点有一些石子,这些点是无法跳上去的.青蛙每次跳跃能向前跳跃+1,+2,+3段,现在请你算出跳到末端 ...

  3. 蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵

    目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序,输入一个4位的自然数,将组成该数的各位数字重新排列,形成一个最大数和一 ...

  4. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  5. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  6. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  7. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  8. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

  9. 蓝桥杯算法训练-强力党逗志芃

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...

最新文章

  1. 第3周实践项目7 删除链表元素最大值
  2. python算法与数据结构-插入排序算法(34)
  3. Mysql时间格式转换
  4. Qunit 和 jsCoverage使用方法(js单元测试)
  5. 10大淘宝直播之城公布:杭州、广州、连云港位列前三
  6. diy gps for mio 686
  7. 黑苹果使用itlwm网卡驱动提示itlwm未运行的问题
  8. html打开lync客户端,在 Skype for Business 与 Lync 客户端用户界面之间切换
  9. SOPC之占空比控制LED(小梅哥AC620)
  10. vue:前端导出PDF 加图片:前端
  11. 科技新品 | 索尼最新高级条形音箱;Bose消噪耳塞全新配色;新一代人工智能社交机器人Musio S...
  12. 二建代报名 2022年二级建造师什么时候报名
  13. 多线程调用ch.ethz.ssh2.Connection执行shell任务时有的执行丢失情况解决
  14. oracle怎么查看表的唯一约束,查询(看)表的主键、外键、唯一性约束和索引
  15. springboot整合多线程ThreadPoolTaskExecutor
  16. H3C设备链路聚合(LACP/PAGP)
  17. 阿里天池--工业蒸汽预测
  18. Python - 100天到大师学习笔记(2)
  19. 2007高校BBS上20个睿智的冷笑话 (转载:csdn论坛;楼主:cuta)
  20. 罗克韦尔定时器的一些应用

热门文章

  1. element-ui的标签页之间跳转 - 默认选中
  2. applicationContext.xml 头信息
  3. C++中的RVO、NRVO与Copy Elision
  4. execl()函数与execlp()函数
  5. 微盟集团上半年业绩逆势增长:抢滩在线新经济未来前景获看好
  6. 我觉得拍照这丫头狠有天赋
  7. Vagrant 手册之同步目录 - 基本用法
  8. HDMI EDID timing详细解析
  9. Angular cdk 学习之 Bidirectionality(bidi)
  10. 单纤双向(Bidi)是如何实现的?会在5G前传中占一席之地吗?