随笔分类 -  数学

摘要:数学能力已经彻底降低到了小学水平,真是惨啊惨。。。 首先G(M)很容易确定,G(M) = 6 * M; H(N) = 6 * F(N),于是推出来H(N)就可以了,昨天请教了一下别人,直接数学公式搞定,不需要什么DP H(N) = 1/6 * (H(N-1) + 1) + 5/6 * (H(N-1) + 1 + H(N)) 解释一下,首先有1/6的概率扔出来1,于是有1/6 * (H(N-1) + 1),后边那部分这么想,先扔了1次,卧槽?居然不一样,那就重新扔,于是有了后面一部分。。。(某数学神如是说。。。) 公式推出来就可以随便算了。。。 阅读全文
posted @ 2013-11-08 12:51 silver__bullet 阅读(363) 评论(0) 推荐(0)
摘要:题目描述:求小于n且与n不互质的数的和。分析: 方法一:容斥原理。对n分解因式,利用容斥原理来n的因子的和即为答案。 方法二:考虑欧拉函数,n之前与n互质的数的和sum=n*euler(n)/2 如果gcd(n,i)=1,那么必有gcd(n,n-i)=1,所以与n互质的数应该是成对出现的,每一对的和就是n,所以总和就是n*euler(n)/2;容斥原理解法 1 #include<iostream> 2 #include<cstring> 3 #include<vector> 4 #define N 1000010 5 using namespace std; 阅读全文
posted @ 2012-10-28 21:22 silver__bullet 阅读(261) 评论(0) 推荐(0)
摘要:分析:中国剩余定理的求解,其中a[i]与a[j]不一定互质。 对于非互质版的中国剩余定理可以通过迭代的办法来求。 对于最终的通解 ans=At+B,我们可以通过逐一合并两个方程来更新A B,最后来得到答案。 最初A=a[1],B=b[1];然后将A B 带入下一个方程得到(At+B)mod a[i]==b[i]..得到一个特解tt,然后在求出此方程通解,再带回到ans中更新A B... 依次类推。。。。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #include<algo 阅读全文
posted @ 2012-10-24 17:10 silver__bullet 阅读(396) 评论(0) 推荐(0)
摘要:题意 求1到之间所有与n互质的数的四次幂之和。分析 分解n^5-(n-1)^5..可以求出1^4+2^4+...+n^4的公式S(n)=1/30*(n^5+15*n^2*(n+1)^2-10*n*(n+1)*(2*n+1)+15*n*(n+1)-6*n) 先求出S(n),利用容斥原理去掉是n的质因子的倍数的数的四次幂之和。。。 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 #define N 100100 6 #include 阅读全文
posted @ 2012-10-11 23:15 silver__bullet 阅读(112) 评论(0) 推荐(0)