随笔分类 - 数学
摘要:要求二项式的幂的某个系数的话,到了初中就应该会知道可以用 杨辉三角 这个东西来求系数。举几个例子吧: 1 1 2 1 1 3 1 2 1 (a+b)^2=a^2+2ab+b^2 4 1 3 3 1 (a+b)^3=a^3+3ba^2+3ab^2+b^3 5 1 4 6 4 1 …… 6 1 5 10
阅读全文
摘要:这个题其实就是一个求全排列的问题,全排列的话在 algorithm 库里有一个非常好用的函数——next_permutation。 先介绍一下这个函数怎么用: 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 in
阅读全文
摘要:这个题若不看题目和范围,我首先想到用递推,不过 n≤2×10^9,若用递推,一定会超时。 要用矩阵加速的话首先要找到一个矩阵(不唯一),用来相乘; 〔a1,a2,a3〕是一个1×3的矩阵,我想把它转化为〔a2,a3,a4〕也是一个1×3的矩阵,所以要找的矩阵肯定是3×3的; 可以假设这个3×3的矩阵
阅读全文
摘要:这个题根据题目也就能知道应该怎么做,但是代码怎么实现矩阵乘法,是一个问题,所以就用到了重载运算符。 重载运算符可以定义一些普通的运算,比如 + ,-,×,÷,%,<,>,!=,……有很多,但不能自己创造符号。 在这个题中,需要定义矩阵乘法,在定义之前,还要定义一个结构体: 1 struct hls{
阅读全文
摘要:洛谷P1226就是快速幂的一个模板题: 输入b,p,k;求b的k次方除以k的值。数据范围 0 ≤ b , p , k < 2^31; 若按之前的方法用循环求 b^p的话,时间复杂度O(n),并且数据会很大,部分测试点 就会超时; 所以,就用到了快速幂: 比如求 2^64 (2^32)^2 => ((
阅读全文
摘要:我首先的思路是定义一个函数,来将输入的数转化为二进制的数,再判断二进制数中1多还是0多,从而判断是A类数还是B类数。 不过在二进制转化有些困难,就查了查资料: 例如:29。用短除法,不断除以2,每次将余数写在后面,直到最后商为0时,停止,从下至上读余数,就是29的二进制数。 有了这个概念,定义函数就
阅读全文
摘要:这个题一开始的想法是定义两个函数,一个用来判断素数,另一个用来将输入的数做反序处理,再次判断是否为素数。 定义一个一维数组,用来存储符合题目条件的数。用一个计数器,来控制输入数组时的下标。 1 int m,n,i,k=0; 2 cin>>m>>n; 3 for(i=m; i<=n; i++) 4 i
阅读全文
摘要:当我做到一本通函数部分时,发现有好多题都与素数有关,并且大部分要定义新函数定义素数。 我记得好像讲过,但我也想不起来。所以我就再整理一下关于此的函数。 我搜了搜题解,它们大多数都是用“bool”定义的;如图: 1 bool a(int x) 2 { 3 int i=2; 4 if(x==1||x==
阅读全文

浙公网安备 33010602011771号