
数论/数学
文章平均质量分 53
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
浅谈矩阵乘法
先来一段百科 矩阵乘法是一种高效的算法,可以把一些一维递推优化到log(n ),还可以求路径方案等,所以更是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。一个矩阵说穿了就是一个二维数组。一个n行m列的矩原创 2017-03-27 15:39:14 · 529 阅读 · 0 评论 -
数论——51nod1040 最大公约数之和
题面:51nod1040 这篇题解只是为了纪念一下好久没有刷数论题的我终于又刷了一道数论水题的题解 初一看没有思路(我是数学蒟蒻QAQ)后来发现可以算贡献。。。 我们发现本质上是让我们求gcd(n,i)=xgcd(n,i)=x的数目(x是n的因数)再乘上xx就可以了 那么如何求gcd(n,i)=xgcd(n,i)=x的数目呢?其实呢gcd(n,i)=xgcd(n,i)=x的数目就是gcd(n原创 2017-09-10 21:09:42 · 302 阅读 · 0 评论 -
数论——51nod1188 最大公约数之和 V2
题面:51nod1188 emmm就是前一道题的升级版了。。。 首先建议去看一下我的前一篇题解:传送门。前一篇题解(就是“最大公约数之和”)是这篇题解的基础 首先一维变成了两维,我们还是可以按照原来的思路来做。 上一篇讲到求∑ni=1gcd(i,n)我们转成了∑nx|nphi(n/x)∗x,这题继续用 本题要求∑ni=1∑i−1j=1gcd(i,j),那我们可以先转成∑ni=1∑i−1x|iphi(i/x)原创 2017-09-10 22:43:31 · 419 阅读 · 0 评论 -
数论——BZOJ1485[HNOI2009]有趣的数列
http://www.lydsy.com/JudgeOnline/problem.php?id=1485 这题我们可以先试试暴力求几个数的答案,或者也可以写一个递推O(n^2)(这样可以拿50分,虽然我没去写) 问同学说这就是一个裸的Catalan数!!! 我表示我数学太弱了。。。。。。。。 Catalan数有好几个公式。。。 这题我们用其中的一个公式: 这里存在的问题是:暴力枚举原创 2017-03-12 20:16:51 · 517 阅读 · 0 评论 -
数学+高精度——BZOJ1876/Luogu2152 [SDOI2009]SuperGCD
http://www.lydsy.com/JudgeOnline/problem.php?id=1876 https://www.luogu.org/problem/show?pid=2152 其实就是高精度gcd,因为辗转相除要试乘很麻烦而且耗时间(~~我是不会告诉你我其实是不会高精度除法~~),有个更相减损法很好用:> 可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。——《原创 2017-03-12 21:28:08 · 421 阅读 · 0 评论 -
二分+高精度——BZOJ1213/Luogu2293 [HNOI2004]高精度开根
http://www.lydsy.com/JudgeOnline/problem.php?id=1213 https://www.luogu.org/problem/show?pid=2293 首先说一下,这又是我们某次膜你赛的题目。。。先上题解:这题只要求一个数非负根取整后的结果,没有小数部分,所以思路很简单 我们可以直接二分答案,二分出某个值然后判断这个数的m次幂与原数判断:mid^m==n,答案直原创 2017-03-13 20:37:26 · 731 阅读 · 0 评论 -
DP——Luogu2563 [AHOI2001]质数和分解
https://www.luogu.org/problem/show?pid=2563 比较裸的动态规划 完全背包嘛 我们可以把质数先给筛出来(不要看我用了欧拉筛,其实在这道题等于大材小用)然后直接DP 状态转移:f[j]+=f[j-pri[i]](pri是质数) 设个边界条件f[0]=1就好啦#include<bits/stdc++.h>using namespace std;int原创 2017-03-27 09:14:25 · 622 阅读 · 0 评论 -
搜索+剪枝——CODEVS1288 埃及分数
http://codevs.cn/problem/1288/ 我不知道这到底算是IDA*还是迭代加深DFS+剪枝。。。 应该是后者吧 我们可以直接暴力找出小于目前数的最小分子为1的分数 但是这个枚举可能无限 我们来一个不知道是不是剪枝的东西 if(b*(rp+1-p)<=a*i)break;如果接下来累加分数还要小于答案那么直接返回就好了 然后限制一下层数 最后关于一个数据的坑点原创 2017-03-29 16:15:47 · 349 阅读 · 0 评论 -
数学——Luogu1072 [NOIP2009]Hankson 的趣味题
https://www.luogu.org/problem/show?pid=1072 首先关于最大公约数和最小公倍数的一个很重要的定理:gcd(a,b)*lcm(a,b)=a*b;这个东西在这里是个很有用的东西 我们来推一下公式: x 和 b0 的最小公倍数是 b1,即lcm(x,b0)=x*b0/gcd(x,b0)=b1 继续转化公式得:gcd(x,b0)=x*b0/b1 从这里原创 2017-03-31 15:29:14 · 359 阅读 · 0 评论 -
向量叉积——Luogu1355 神秘大三角
https://www.luogu.org/problem/show?pid=1355 这题计算几何面积法很好,但是可以用来练手叉积 这个用文字来解释有点麻烦。。。 首先要知道叉积是个什么东西 向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。在计算几何中,叉积的运算原创 2017-04-18 11:14:32 · 567 阅读 · 4 评论 -
矩乘——BZOJ2875/Luogu2044 [Noi2012]随机数生成器
题面:Luogu2044 BZOJ2875 很明显,这个递推式: X[n+1]=(aX[n]+c) mod m X[i]的值只与X[i-1]有关 所以我们可以很快构造出关于X,a和c的一个矩阵递推式 正确性显然 所以我们要求X[n],我们就按照这个递推式来做就好了 根据矩阵乘法支持结合律,我们可以先算出后面那个矩阵的n次 然后再把前面那个矩阵乘上去就好了 因为在计算相乘的过程中原创 2017-05-03 08:34:23 · 390 阅读 · 0 评论 -
矩乘——BZOJ3231/Luogu2461 [Sdoi2008]递归数列
题面:BZOJ传送门 洛谷传送门 这个递推式挺恶心的。。。 首先, 而且要求区间和(这个其实简单)我们差分一下就好了 那么我们构造矩阵递推式(要把前缀和也搞进去) 和noi2012的那题随机数生成器一样,我们还是可以通过结合律把前面的先算出来再把后面的乘上去,就变成了这样: 然后就可以矩阵快速幂解决了 ps:这题变量要全开long long,我调了一个上午。。。#include原创 2017-05-05 11:30:52 · 551 阅读 · 0 评论 -
贪心——Codeforces814D An overnight dance in discotheque
题面:cf814d 简要题意:有n个圈,之间的关系只有包含和完全分离两种,一个圆和它的的直接上层(包含它的最小那个)不能同时选(选是加上这个圆的面积,而不选是减去这个圆的面积,具体看cf的图),问最多能选到的圆的面积是多少大力贪心不虚啊,直接按照圆的大小排序,然后最大的选上,然后有奇数个上层(包含它的圆的个数)不选,偶数层的选上就好了 然后就AC了。。。 判断两圆是否包含:圆心距<两圆半径之和原创 2017-06-09 20:05:38 · 415 阅读 · 0 评论 -
线段树——Luogu1471 方差
题面:Luogu1471 一眼数据结构题 然后我们要维护区间方差?带区间修改? 听起来是不是很麻烦? 首先题目给的方差公式: 这个是平均数 我们可以化开来看: 然后因为中间一项的a[1]+a[2]+…+a[n]=*n 是不是? 所以继续化: 然后我们只要用线段树维护一下区间和还有平方和就可以了 但是区间修改怎么下传平方和呢? 我们把要加上的数记为v,那么:原创 2017-06-15 09:16:50 · 594 阅读 · 0 评论 -
数论+高精度——BZOJ2822/Luogu2532 [AHOI2012]树屋阶梯
题面:BZOJ2822 Luogu2532 本题就是Catalan数 Python:暴力直接求100B– C++:质因数分解+高精度 首先是这个公式:所以我们直接对1~2n质因数分解一下,然后高精乘单精就可以解决问题了代码:原创 2017-06-16 07:58:16 · 330 阅读 · 0 评论 -
三分——BZOJ1857/Luogu2571 [SCOI2010]传送带
题面:BZOJ1857 Luogu2571 观察题目加上一定分析计算画图像等等可以得出,从某一条传送带的某一位置直接到达终点的函数是一个二次函数 这一结论同样可以推到两条传送带上 我们看作从第一条传送带的某一点直接到达第二条传送带的某一点(把这个点当终点好了),再沿着传送带到终点 这样我们就可以搞一搞喜闻乐见的三分啦OWO这个其实是三分套三分啦,首先三分第一条传送带的点,然后把这个点当终点,原创 2017-06-22 14:42:35 · 269 阅读 · 0 评论 -
DP——51nod1486 大大走格子
题面:51nod1486 至于CF原题是什么,我们不去管它 这题的DP思路很有趣。首先如果没有不能走的格子的话,n∗mn*m的棋盘的走法数就是Cm−1n+m−2C_{n+m-2}^{m-1},因为通过转移方程可以很直观地发现是一个杨辉三角 现在考虑到有不能走的格子的问题,我们发现只有这个格子左上的不能走的格子会对走法数产生影响,所以我们只要考虑这些格子就可以了。 然而我们不能直接枚举行和列,原创 2017-09-18 13:40:04 · 470 阅读 · 0 评论