数学
pbihao
这个作者很懒,什么都没留下…
展开
-
【cdoj 1330】柱爷与远古法阵 高斯消元
毕竟是本人的第一次写高斯消元,所以你会发现代码与题解神似,至于为什么,无可奉告其实思想蛮简单,主要来谈谈代码#include#include#include#include#define maxn 305#define esp (1e-14)using namespace std;int n,m,f[maxn];long double a[maxn][maxn];/原创 2016-08-05 15:52:28 · 691 阅读 · 0 评论 -
【BZOJ 1951】[Sdoi2010]古代猪文 各种数论模板
其实题目挺裸的,很简单就是要用到好多的模板,也好基本做个总结嗯,这就是这道题需要用到的知识点,其他的就很裸了。还有就是提一下组合数的求法,因为mod的是999911658不是质数,是合数所以把它分解为几个质数然后分别求最后用中国剩余定理再来算就好了。#include#include#includeusing namespace std;typedef long long原创 2017-01-20 20:02:06 · 222 阅读 · 0 评论 -
【BZOJ 4173】 数学 数论
我还能说什么http://blog.csdn.net/zhhx2001/article/details/52300924#include#include#include#define LL long longusing namespace std;LL n,m;const LL Mod=998244353ll;LL phi(LL x){ LL ans=x; for(LL原创 2017-01-21 21:37:22 · 255 阅读 · 0 评论 -
【BZOJ 2005】 [Noi2010]能量采集 求gcd个数
首先我们设g[x]表示x为gcd(a,b)约数的(a,b)对数,那么显然有g[x]=(n/x)*(m/x)接着我们设f[x]表示gcd(a,b)=x 的(a,b)对数那么还是显然f[x]=g[x]-f[2*x]-f[3*x]-f[4*x].......那么我们直接倒着枚举x然后计算答案就好了。#include#include#include#define LL long long原创 2017-01-21 22:07:52 · 227 阅读 · 0 评论 -
【BZOJ 2882】combination 推逆元+Lucas定理
题目描述。。。。很简单的求组合数,预处理阶乘和逆元就好了Lucas定理C(n,m)=C(n/Mod,m/Mod)*C(n%Mod,m%Mod)证明什么的这不重要。。。线性推逆元inv[i]=-(Mod/i)*inv[Mod%i]%Mod#include#include#include#define Mod 10007#define LL long longusing原创 2017-01-24 18:24:04 · 231 阅读 · 0 评论 -
[BZOJ 2956]模积和 分块+数学
一开始忘记了平方数列求和,郁闷: sum[n]=n*(n+1)*(2*n+1)/6 其实打一个表是看得出规律的,但是要进行运算我们还是得把他变成数学公式才可以啊: 对于取模运算:n%i=n−⌊ni⌋∗in\% i= {n-\lfloor {{n} \over {i}}\rfloor} *i 化简以后就是喜闻乐见地 分块了 #include<cstdio>#include<iostre原创 2017-03-02 16:40:18 · 346 阅读 · 0 评论 -
【BZOJ 2820】YY的GCD 莫比乌斯反演
\begin{array}{l}\sum\limits_{ispri(p)}^{} {\sum\limits_{i = 1}^n {\sum\limits_{j = 1}^m {\gcd (i,j) = = p} } } \\ = \sum\limits_{ispri(p)}^{} {\sum\limits_{i = 1}^{\left\lfloor {\frac{n}{p}} \right\rf原创 2017-02-22 20:10:06 · 250 阅读 · 0 评论 -
【BZOJ 4269】再见Xor 线性基
首先构造线性基求出最大的异或值,然后再用最大的异或值异或最小的线性基就是次大值。线性基这玩意比较好玩但是很迷,证明还是简单就不说了。#include#include#includeusing namespace std;int n,a[100021],ins[35],ans;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++)sca原创 2017-01-29 18:38:35 · 259 阅读 · 0 评论 -
【BZOJ 2115】[Wc2011] Xor 线性基
环^链=链,所以找到一条从1到n的路径和很多很多环,这时候就可以任意异或了,异或和最大,然后用到线性基。#include#include#include#define cmax(a,b) ((b)>(a)?a=(b):1)#define LL long long#define maxn 200020using namespace std;int n,m,head[maxn],to原创 2016-12-19 15:37:30 · 222 阅读 · 0 评论 -
【BZOJ 2060】[BeiJing2011]元素 线性基
根据线性基的性质保证我们的任意序列构造的之间相互异或都不为0,所以贪心的来建,按照magic从大到小排序,然后从大到小构造线性基,对于每个加入线性基的元素对答案造成贡献#include#include#include#include#define LL long longusing namespace std;int n,ins[65];LL ans;struct node{原创 2016-12-19 12:09:23 · 308 阅读 · 0 评论 -
数学知识
*卡特兰数的最后一个求法用的是wiki上面的C(2*n,n)- C(2*n,n+1)虽然看似没有区别,数值都一样但是在BZOJ 3907 n-1会挂原创 2017-01-20 21:10:28 · 279 阅读 · 0 评论 -
【BZOJ 2154】Crash的数字表格 莫比乌斯反演
http://cjjlsdy.blog.163.com/blog/static/18037056320146198140985/#include#include#include#define maxn 10000021#define LL long long#define Mod 20101009llusing namespace std;bool vis[maxn];LL u原创 2017-02-15 17:24:54 · 212 阅读 · 0 评论 -
【BZOJ 2705】[SDOI2012]Longge的问题 欧拉函数
水水的数学题枚举gcd所以ans=∑d*∑gcd(i,n)==d=∑d*∑gcd(i/d,n/d)==1第二个求个可以显然发现就是欧拉函数,问题解决可是。。。由于最近写数学题全部都是O(n)用积性函数性质来筛欧拉函数。。。结果想了半天没法筛啊,数据范围那么大,结果。。。。只用每一次根号n的复杂度暴力求就好了脑残。#include#include#include#inc原创 2017-02-24 22:11:10 · 227 阅读 · 0 评论 -
[BZOJ 3994][SDOI 2015]约数个数 数学+反演
∑i=1n∑j=1m⌊ni⌋∗⌊mj⌋,gcd(i,j)=1{\sum\limits_{i=1}^{n}} {\sum\limits_{j=1}^{m}} {\lfloor {{n} \over {i} }\rfloor} * {\lfloor {{m} \over {j}} \rfloor} ,gcd( i,j) =1 主要就是这个公式吧,其他的都是很好写的莫比乌斯反演,一股脑的推就好了原创 2017-03-03 17:05:30 · 274 阅读 · 0 评论 -
【BZOJ 3944】sum 杜教筛
杜教筛简洁原创 2017-02-17 11:38:30 · 264 阅读 · 0 评论 -
【BZOJ 2186】[Sdoi2008]沙拉公主的困惑 欧拉函数
若(x,y)=1则(x+n*y,y)=1,又因为n>=m所以答案就是:(n!)/(m!)*phi(m!)=(n!)/(m!)*(m!)*∏(1-1/p)=(n!)*∏(1-1/p)全部预处理完事。线推逆元inv[i]=-(Mod/i)*inv[i%Mod]%Mod#include#include#include#include#define LL long long#de原创 2017-02-06 17:02:08 · 212 阅读 · 0 评论 -
【BZOJ 3505】[Cqoi2014]数三角形 组合数学
组合数学C(n*m,3)-一条线的情况就好了#include#include#include#define LL long longusing namespace std;LL ans,n,m;LL gcd(LL a,LL b){return !b ? a : gcd(b,a%b);}inline LL C(LL x){return x*(x-1)*(x-2)/6;}i原创 2017-02-06 14:29:19 · 239 阅读 · 0 评论 -
【uva 10375】选择与除法
大紫上很清楚了,我写题解是因为我搞不懂为毛while(scanf(""))就T while(cin>>)就A 郁闷#include#include#include#define Mod 10001#define LL long longusing namespace std;LL T,x[330],ans[330];void exgcd(LL a,LL b,LL& g,LL& x,原创 2016-10-10 19:37:32 · 207 阅读 · 0 评论 -
【UVA 10791】最小公倍数的最小和
最小公倍数的最小和原创 2016-10-10 20:46:14 · 298 阅读 · 0 评论 -
【poj 1006】Biorhythms 中国剩余定理
http://blog.csdn.net/acdreamers/article/details/8050018中国剩余定理: x≡a1(mod m1) x≡a2(mod m2) x≡a3(mod m3)原创 2016-11-13 20:48:23 · 302 阅读 · 0 评论 -
【bzoj 2822】树屋阶梯详解 卡特兰数性质
【bzoj 2822】树屋阶梯详解 卡特兰数性质原创 2016-09-17 11:03:20 · 461 阅读 · 0 评论 -
【BZOJ 1856】 [Scoi2010]字符串 折线法
方程ans=C(n+m,m)-C(n+m,m-1)类似卡特兰数的公式,卡特兰数通项公式:h[n]=c(2*n,n)-C(2*n,n-1)证明用折线法,不过懒得画图了:卡特兰数证明:http://blog.sina.com.cn/s/blog_6917f47301010cno.html类似于上面我们每增加一个1就相当于斜向上走一步,0就是斜向下走一步,那么在没有限制的情况下方案数就是原创 2016-11-14 18:08:16 · 232 阅读 · 0 评论 -
【BZOJ 1013】 [JSOI2008]球形空间产生器sphere 高斯消元
列方程后高斯消元即可#include#include#include#include#define eps 1e-6using namespace std;int n;double a[15][15],b[15][15];void solve(){ for(int k,i=1;i<=n;i++){ for(k=i;keps)break; if(k>n)continu原创 2016-12-19 11:53:56 · 163 阅读 · 0 评论 -
【BZOJ 1923】 [Sdoi2010]外星千足虫 高斯消元
1923: [Sdoi2010]外星千足虫Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 907 Solved: 582[Submit][Status][Discuss]Description Input第一行是两个正整数 N, M。 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果。每行包含一原创 2016-12-19 17:01:33 · 207 阅读 · 0 评论 -
【BZOJ 2337】[HNOI2011]XOR和路径 高斯消元+按位异或
Description看到是异或考虑按位来做,枚举二进制每一位,设f[i]表示从i到n的这一位为1的概率(虽然我也不知道为什么那么多博客说是期望)。然后显然f[n]=0(没有边可以走),f[i]=∑f[j]*1/d[i](边权这一位为0)+(1-f[j])*1/d[i](边权这一位为1)最后累计加上第一个点对答案的贡献即期望ans+=f[i]*(1#in原创 2016-12-19 19:01:51 · 265 阅读 · 0 评论 -
uva 12169 不爽的裁判 例题2
uva 12169 不爽的裁判 例题2原创 2016-10-10 19:35:13 · 305 阅读 · 0 评论 -
【BZOJ 1257】[CQOI2007]余数之和sum
分析发现所有a/b=x....y 如果x相同的话y是一个等差数列于是可以利用等差求和,枚举x最多只枚举到根号n,然后再暴力枚举根号n 以下的数字,复杂度根号n#include#include#include#define LL long longusing namespace std;LL n,k,ans,l;int main(){ scanf("%lld%lld",&n,&原创 2016-11-13 19:22:34 · 348 阅读 · 0 评论 -
【BZOJ 3142】[Hnoi2013]数列 数学+差分
很有趣的一道题目呀,涨知识了。。。。。答案=n*m^(k-1)-(m*(m+1))/2*m^(k-2)*(k-1)推导过程:点击打开链接#include#include#include#define LL long longusing namespace std;LL n,m,p,k;LL mull(LL x,LL y){ LL ans=1; for(;y;y>>=1原创 2017-01-14 14:40:51 · 319 阅读 · 0 评论 -
【BZOJ 1025】[SCOI2009]游戏 置换+dp
又是一个套路。。。。我们把每一种关系当作一条边,那么最后会形成一个n个点n条边的图,每出现一个环就是循环了,所以问题就是求这些环的最小公倍数的种类,手画一下会很容易发现,这个图由于是n个点n条边,所以至少出现一个环,而且环与环不会相交,也就是说,∑环的边数#include#include#include#define maxn 1020#define LL long longus原创 2017-01-15 08:38:09 · 236 阅读 · 0 评论 -
【BZOJ 4052】[Cerc2013]Magical GCD 暴力+gcd
有一个套路就是每一次加入一个数字区间的gcd肯定是不上升的,而每一次下降也会是至少下降为1/2,所以本质不同的gcd的个数并不会有太多,既然这样就可以枚举右端点然后暴力维护左端点有相同的gcd就删除l大的那一个然后就好。#include#include#include#include#define maxn 100021#define LL long longusing names原创 2017-03-27 11:54:14 · 434 阅读 · 0 评论