
-------------数学相关-------------
CHN_JZ
爆0 forever
展开
-
[组合数学]BZOJ 1008——[HNOI2008]越狱
#1008: [HNOI2008]越狱题目描述---- 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱。原创 2017-06-27 20:31:13 · 1081 阅读 · 0 评论 -
矩阵乘法总结
矩阵乘法矩阵乘法是用于优化一些递推式的方法。定义两个矩阵的乘法当且仅当第一个矩阵A的列数和第二个矩阵B的行数相等下才有定义。 假设A是n×mn\times m 的矩阵,B是m×pm\times p 的矩阵,那么他们的乘积C一定是一个n×pn\times p 的矩阵。其中C任意的一个元素值为:ci,j=ai,1b1,j+ai,2b2,j+ai,3b3,j+...+ai,mbm,j=∑r=1mai,原创 2017-06-14 20:44:21 · 2269 阅读 · 1 评论 -
[数学+枚举]BZOJ 4921——互质序列
题目描述现在给定一个长度为n的序列,你需要从中删除一个非空连续子序列,使得剩下至少2个数,令E为剩下数的最大公约数的期望值,S为合法的方案数,请计算E*S的值。因为这个值可能非常大,请对998244353取模输出。解题思路最后答案是E*S,所以跟概率没有毛线关系,答案就是所有gcd情况的加和。 因为是删除一个连续的子序列,所以剩下的数肯定是一段前缀和一段后缀的gcd。 其次我们知道前缀或后缀的g原创 2017-07-28 22:29:02 · 1264 阅读 · 0 评论 -
[数学杂题]51 Nod 1765——谷歌的恐龙
题目梗概给出一个数n,每次随机[0,n)[0,n)之间的一个数,如果随机到给出的mm个数之一就停止。求随机出来的数字的期望。解题思路真TM智障,我想了很久……能够继续下一次操作的概率为p=(n−m)/mp=(n-m)/m显然答案就是1∗1n∗S+p∗1n∗S+p2∗1n∗S……1*\frac{1}{n}*S+p*\frac{1}{n}*S+p^2*\frac{1}{n}*S……其中SS表示所有数的和原创 2017-10-18 15:10:00 · 691 阅读 · 0 评论 -
[容斥原理+组合数学]51 Nod 1829——函数
题目描述想知道f:A->B这个函数(其中|A|=n, |B|=m)的所有映射关系要使B的每个元素都要被A的一个元素覆盖到。数字可能很大你只要输出方案数模1,000,000,007即可。解题思路一看就是要用到容斥原理。有ii个B元素没被覆盖的方案数为Cim∗(m−i)NC^{i}_{m}*{(m-i)}^{N}容斥一下答案就出来了。#include<cstdio>#define LL long lo原创 2017-10-29 18:31:28 · 1254 阅读 · 0 评论 -
[组合数学]51 Nod 1486——大大走格子
题目描述第一行有三个整数h, w, n(1 ≤ h, w ≤ 10^5, 1 ≤ n ≤ 2000),表示棋盘的行和列,还有不能走的格子的数目。接下来n行描述格子,第i行有两个整数ri, ci (1 ≤ ri ≤ h, 1 ≤ ci ≤ w),表示格子所在的行和列。输入保证起点和终点不会有不能走的格子。解题思路如果不考虑障碍,那么从起点走到(x,y)的方案数为Cx−1x+y−2C^{x-1}_{原创 2017-10-23 18:41:56 · 760 阅读 · 0 评论 -
[Lucas 原理+逆元]BZOJ 4403——序列统计
题目描述给定三个正整数N、L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量。输出答案对10^6+3取模的结果。解题思路显然L,R的大小对答案没有影响,但是相对大小有影响,设m=R−L+1m=R-L+1用隔板法可推出长度为n的方案数(n+m−1m−1)(^{n+m-1}_{m-1})于是总方案就是∑ni=1(i+m−1m−1)\sum_{i=1}^{n}(^{i+m-1}_{m原创 2017-10-24 20:03:23 · 555 阅读 · 0 评论 -
[Lucas定理+中国剩余定理]1951—— [Sdoi2010]古代猪文
题目梗概求G∑d|n(nd)%PG^{\sum _{d|n} (^n_d)}\%P解题思路由欧拉定理可得原式=G∑d|n(nd)%ϕ(P)%P=G^{\sum _{d|n} (^n_d)\%\phi(P)}\%P(nd)(^n_d)由Lucas定理可得,然后ϕ(P)=999911658=2∗3∗4679∗35617\phi(P)=999911658=2 * 3 * 4679 * 35617可以用中国原创 2017-12-03 19:41:29 · 580 阅读 · 0 评论 -
[数学杂题]BZOJ 2111—— [ZJOI2010]Perm 排列计数
题目梗概求[1,n]有多少个排列满足Pi>Pi/2P_i>P_{i/2}解题思路不难发现排列构成一个小根堆,因此树形可以确定。然后用f[i]f[i]表示以第i个节点为根的方案数。转移方程不难得出。最主要的是这题虽然P很大但是依然要用Lucas,为什么呢?因为处理n的阶乘时到后面%P会变成0,所以要限制阶乘的范围。WA了5发才反应过来。#include<cstdio>#include<algorit原创 2017-12-03 20:51:34 · 597 阅读 · 0 评论 -
浅谈高斯消元
高斯消元解一个n元的一次方程组,显然解这样的方程组我们需要得到n个方程。大致思想就像初中的时候解二元方程一样,先将所有方程某同一元前面的系数化为相同系数,抵消后只剩下n−1n-1个方程和n−1n-1个系数,当我们发现消到只剩一个元的时候显然可以直接求出,然后回代到两元的方程中,继续向多元回代直到解出nn个元。 操作过程十分简单,但是不难发现存在非常严重的精度问题。基本过程把方程组的系数和值转换为一原创 2017-07-13 19:06:03 · 775 阅读 · 0 评论 -
[高斯消元]BZOJ 1013 [JSOI2008]——球形空间产生器sphere
1013: [JSOI2008]球形空间产生器sphere题目描述 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体。现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁这个球形空间产生器。 解题思路 这个n维球的球心为O1O2O3…On。 因为所以点在球面上,所以点到球心的距离显然是相等的,通过原创 2017-07-14 21:44:21 · 853 阅读 · 0 评论 -
欧拉筛——线性筛素数和欧拉函数
欧拉筛(线性筛)ps:以下内容来自一个蒟蒻,如果有错误请各位大佬指出。 先来看下我以前用的埃氏筛法for (int i=2;i<=n;i++) if (!vis[i]){ for (int j=i+i;j<=n;j+=i) vis[j]=1; p[++p[0]]=i; }这种写法显然会将一个数挖去多次,效率显然不是线性的,有dalao指出是O(nlog2n)O(nlog^2 n原创 2017-06-30 09:28:39 · 1706 阅读 · 1 评论 -
[中国剩余定理]Hdu 1573——X问题
题目传送门 这道题给出了多个同余方程,所以马上联想到中国剩余定理。中国剩余定理求解同余方程组的算法。 设m1,m2,…,mr两两互质,N=m1*m2*…*mr。 考虑方程组的特殊解: X≡0(modX≡0 (mod m1)m1) … X≡1(modX≡1 (mod mi)mi) … X≡0(modX≡0 (mod mr)mr) 由于所有mi互质,所以x=(N/mi)*y等价于(N原创 2017-06-04 21:45:31 · 606 阅读 · 2 评论 -
[BFS+康托展开]Hdu 1043 Eight
题目传送门这道题就是我们耳熟能详的八数码问题,如果写BFS必然涉及到如何判断一个状态是否进队,可以把序列表示成一个9进制的数,用set或者直接hash,但是这样操作效率过低。0~8的排列最多只有9!种排列方式,所以如果我们能很快求出每个序列的大小,那么直接开vis标记就可以了。所以引进了康托展开。康托展开假设我们拿到一个序列是32451,求这个序列的在所有排列中的次序。 其实我们只要确定有几个排列原创 2017-05-26 18:41:20 · 639 阅读 · 0 评论 -
BZOJ 2190 [SDOI2008]仪仗队——欧拉函数
题目传送门解题思路 假设原点为(0,0),可以发现对于坐标(i,j),如果满足gcd(i,j)=1,这个点就肯定能看到,所以有2∗∑i=2nphi(i)2*\sum_{i=2}^{n}phi(i)个点肯定满足。然后不要忘记(0,1),(1,0),(1,1)这三个点。#include<cstdio>using namespace std;int n,ans;int phi(int x){原创 2017-05-03 08:10:37 · 576 阅读 · 0 评论 -
欧拉定理的内容证明及欧拉函数的推导
【内容】 a^φ(n)≡1 (mod m) 其中φ(n)是欧拉函数,下面是关于φ(n)的求法 【φ(n)的求法】 φ(n)就是求[1,n]的区间与n互质的数的个数。 我们可以先用容斥的思想考虑这个问题: 1.n可以分解成若干个质因子相乘的形式,形如n=p1^a1+p2^a2+p3^a3+…+pk^ak 2.显然φ(n)= φ(p1^a1)* φ(p2^a2)…φ(pk^ak) 3.很原创 2017-02-14 22:39:03 · 3886 阅读 · 1 评论 -
[母函数]HDU 1521——排列组合
Holding Bin-Laden Captive!Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Chin原创 2017-06-11 19:24:55 · 1502 阅读 · 0 评论 -
[母函数]HDU 1085——Holding Bin-Laden Captive!
Holding Bin-Laden Captive!Problem DescriptionWe all know that Bin-Laden is a notorious terrorist, and he has disappeared for a long time. But recently, it is reported that he hides in Hang Zhou of Chin原创 2017-06-11 20:02:43 · 1689 阅读 · 2 评论 -
母函数总结
母函数母函数是用于解决组合问题计数的一种方法。 在了解它之前我们先看看熟悉的杨辉三角。 杨辉三角的第n行(注意是从0开始标号的)的数字就是(1+x)n(1+x)^n的展开式从低项到高项的各项系数,也可以表示为组合数的形式C(i)(n)。如果将两者联系起来我们会发现,(1+x)(1+x)可以看成对于一件取舍,1=x01=x^0就是不取,x就是取。这样在(1+x)n(1+x)^n的展开式原创 2017-06-12 19:25:34 · 6678 阅读 · 3 评论 -
[普通型母函数+容斥+FFT]BZOJ 3771:Triple
看到ZZK大佬的blog写的太好啦,所以就“转”来了。题目概述CHNJZ有nn把价值不一样的斧子,ZigZagK偷走了11把或22把或33把,对于每个可能的总损失,计算有几种可能的方案。解题报告emm……显然是母函数啊?但是有数量限制。由于最多偷走三把,所以我们可以直接三种情况都讨论过去。11把:母函数:A(x)=xa1+xa2+xa3+...+xanA(x)=x^{a_1原创 2018-01-10 19:24:09 · 599 阅读 · 0 评论