
数学
文章平均质量分 68
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
codeforces #259 DIV2 C题 Little Pony and Expected Maximum(容斥+快速幂+公式推导)
题目地址:http://codeforces.com/contest/454/problem/C这题根据容斥原理可以推出公式:期望P=((m^n-(m-1)^n)*m+((m-1)^n-(m-2)^n)*(m-1)+.......+(1^n-0^n)*1)/m^n;这个公式还是挺容易推出来的。。从1到m的n次方可以用快速幂求出来。但是一个问题是数太大了,100000^10^5是一个有5原创 2014-08-02 08:09:04 · 2094 阅读 · 0 评论 -
light oj 1007 Mathematically Hard (欧拉函数)
题目地址:light oj 1007 第一发欧拉函数。 欧拉函数重要性质: 设a为N的质因数,若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N / a) * a;若(N % a == 0 && (N / a) % a != 0) 则有:E(N) = E(N / a) * (a - 1) 对于这题来说,首先卡MLE。。只能开一个数组。。所以把前缀和也存到原创 2015-08-10 09:53:22 · 1184 阅读 · 0 评论 -
POJ 2635 The Embarrassed Cryptographer (同余线性方程+素数筛)
题目地址:POJ 2635先用素数筛把10^6万以内素数筛出来。然后把输入的那个大数转化成数组,并且每三位存成一个数,这样可以节约内存和时间,然后利用同余线性的原理,对那个小整数以内的所有素数枚举,然后判断是否整除,找到最小的能被整除的。代码如下:#include #include #include #include #include #include #include原创 2015-01-22 22:47:51 · 891 阅读 · 0 评论 -
POJ 1845 Sumdiv (快速分解因式+快速幂取模)
题目地址:POJ 1845转载自:http://blog.youkuaiyun.com/lyy289065406/article/details/6648539大致题意:求A^B的所有约数(即因子)之和,并对其取模 9901再输出。 解题思路:要求有较强 数学思维 的题应用定理主要有三个:要求有较强 数学思维 的题应用定理主要有三个:原创 2015-01-23 14:25:35 · 942 阅读 · 0 评论 -
快速幂取模总结
大白书上说的是模运算。。而且给出了递归版的代码。。我觉得还是非递归的好。。而且加上了位运算,速度更快。下面是快速幂取模模板。模板:LL quickpow(LL n, LL m, int mod){ LL ans=1; while(m>0) { if(m&1) ans=ans*n%mod; m=m >>原创 2014-08-06 10:26:53 · 1179 阅读 · 0 评论 -
POJ 3292 Semi-prime H-numbers (仿素数筛)
题目地址:POJ 3292先利用素数筛的原理把H_prime筛出来,然后打表。要预处理,否则TLE。代码如下:#include #include #include #include #include #include #include #include #include using namespace std;#define LL __int64#define p原创 2015-01-23 10:20:38 · 967 阅读 · 0 评论 -
HDU 1796 How many integers can you find(容斥原理)
这个题的m的数中居然有0啊,RE了好几次。。。。初学容斥原理,这才知道还有奇加偶减这个东西,以前一直以为容斥原理不过是把重复的删掉就好了,。。然后知道奇加偶减这个东西后,就可以深搜了,将所有组合情况全列出来,然后求lcm就好了。数的个数就是(n-1)/lcm,虽然我代码里写的是gcd。。不要在意这些细节。。。#include #include #include #include #原创 2015-01-08 11:13:24 · 844 阅读 · 0 评论 -
HDU 5159 Card (组合数学)
所有的组合中包含某个数的次数对于所有的数来说是相同的,那么就求出这个次数乘以所有数的和然后除以总的组合次数就可以了。开始想复杂了。。。可以先预处理下,然后直接输出。代码如下:#include #include #include #include #include #include #include #include #include using namespace s原创 2015-01-11 18:50:22 · 1432 阅读 · 0 评论 -
HDU 1695 GCD (容斥原理+质因数分解)
先进行预处理,对每一个数分解质因数。然后将因为若gcd(x,y)==z,那么gcd(x/z,y/z)==1,又因为不是z的倍数的肯定不是,所以不是z的倍数的可以直接去掉,所以只要将b和d除以k,然后就转化成了求两个范围中互质的对数了。这时候可以枚举1~b,然后用容斥原理找1~d范围内的与枚举数互质的数的个数,为了避免重复,只要再限定下大小关系就可以了,具体见代码。代码如下:#inclu原创 2015-01-08 19:06:12 · 1013 阅读 · 0 评论 -
HDU 4135 Co-prime (容斥原理+质因数分解)
这题只要知道质因数的性质就很容易做了。任意一个正整数(除了1)都可以分解成有限个质数因子的乘积。那么假如两个数互质,那么这两个数肯定至少各有一个对方没有的质因子。所以若一个数跟n不互质,那么这个的数的质因子肯定也都属于n的质因子,那么就用容斥原理求出所有跟n不互质的所有数的个数。然后再用总的减去即可。代码如下:#include #include #include #include原创 2015-01-08 15:21:57 · 996 阅读 · 0 评论 -
POJ 1006 Biorhythms(中国剩余定理)
题目地址:POJ 1006学习了下中国剩余定理。参考的该博客,博客戳这里。中国剩余定理的求解方法:假如说x%c1=m1,x%c2=m2,x%c3=m3.那么可以设三个数R1,R2,R3.R1为c2,c3的公倍数且余c1为1,同理,R2,R3也是如此,然后设z=R1*m1+R2*m2+R3*m3,那么z就是其中一个解,而且每隔(c1,c2,c3)的最小公倍数就是一个解。想要最小解的话,只原创 2014-08-07 09:52:00 · 1089 阅读 · 0 评论 -
POJ 1061 青蛙的约会(扩展GCD求模线性方程)
题目地址:POJ 1061扩展GCD好难懂。。看了半天,终于把证明什么的都看明白了。。推荐一篇博客吧(戳这里),讲的真心不错。。直接上代码:#include #include #include #include #include #include #include #include #include #include #include using namespa原创 2014-08-06 21:04:20 · 941 阅读 · 0 评论 -
POJ 2115 C Looooops(扩展欧几里得应用)
题目地址:POJ 2115水题。。公式很好推。最直接的公式就是a+n*c==b+m*2^k.然后可以变形为模线性方程的样子,就是n*c+m*2^k==b-a.即求n*c==(b-a)mod(2^k)的最小解。(真搞不懂为什么训练的时候好多人把青蛙的约会都给做出来了,这题却一直做不出来。。。。。这两道不都是推公式然后变形吗。。。。。)代码如下:#include #include原创 2014-08-06 22:31:27 · 1123 阅读 · 0 评论 -
HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)
题目地址:HDU 4920对这个题简直无语到极点。。。居然O(n^3)的复杂度能过。。。。方法有三。。1:进行输入优化和输出优化。。(前提是你的输入优化不能太搓。。。)2:利用缓存优化。。详情请看该论文。大体就是将后两个for循环换过来,让坐标改变的频率降下来。3:叉姐题解中说的正规方法。。利用biset存储,进行预处理。。(其实我还没看懂。。我只写了个第二种。。。代码如下,共原创 2014-08-05 18:49:06 · 1342 阅读 · 0 评论 -
HDU 1452 Happy 2004 (积性函数)
题目地址:HDU 1452 性质1 :如果 gcd(a,b)=1 则 S(a*b)= S(a)*S(b) 2004^X=4^X * 3^X *167^X S(2004^X)=S(2^(2X)) * S(3^X) * S(167^X)性质2 :如果 p 是素数 则 S(p^X)=1+p+p^2+…+p^X = (p^(X+1)-1)/(p-1) 因此:S(2004^X)=(2^(2X+1)-原创 2015-08-05 09:37:19 · 701 阅读 · 0 评论