随笔分类 -  数学

摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3216乱搞的...watashi是分块做的...但我并不知道什么是分块...大概就是把结果相同的数据合并计算打表跑了一下...发现重复出现的数字很多...于是直接找出会发生重复的数乘起来就行了.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #in 阅读全文
posted @ 2013-10-06 20:30 Felix_F 阅读(244) 评论(0) 推荐(0)
摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下转化成(0,0,0)~(a-1,b-1,c-1)就和前一题就一样了还是莫比乌斯反演求gcd(a,b,c)=1的组数,公式还是sigma{u(d) * ((a/d+1) * (b/d+1) * (c/d+1) - 1)}但直接暴力会T...所以加了分块优化...因为当a/d,b/d,c/d的值保持不变的时候...可以跳过很多数据所以维护一下miu的前缀和...中间相同的部分就可以直接得出了/***** 阅读全文
posted @ 2013-10-06 17:47 Felix_F 阅读(487) 评论(0) 推荐(0)
摘要:http://www.spoj.com/problems/VLATTICE/PS:jzp线性筛那个PPT做的很棒...浅显易懂...对理解莫比乌斯反演帮助很大http://www.isnowfy.com/mobius-inversion/再PS:这个博客介绍了莫比乌斯反演的一些基本知识,最后的例题也和这个差不多了...这题是求(0,0,0)~(N,N,N)中gcd(a,b,c)=1的点的个数显然就是莫比乌斯反演的板题了...很容易就能得出F(1) = sigma(miu(d)*(n/d)*(n/d)*(n/d))但这求出来的是(0,0,0)~(N,N,N)中 i,j,k>0 三维空间内点 阅读全文
posted @ 2013-10-06 11:47 Felix_F 阅读(415) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4135因为要与n互素, 所以n的素因子显然是不能出现的...那么我们只要找出1-a和1-b中含n的素因子的数的个数即可...显然会有大量重复,大胆容斥O(2^cnt)即可..cnt是n的素因子的个数bitset维护所有素因子的二进制值,枚举一下就出来了...素因子不是很大...总体大概O(sqrt(n) * 2^(cnt))/********************* Template ************************/#include #include #include #include # 阅读全文
posted @ 2013-09-27 19:30 Felix_F 阅读(152) 评论(0) 推荐(0)
摘要:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1303这个OJ很容易跪所以我贴一下题目Description任意一个分数都是有理数,对于任意一个有限小数,我们都可以表示成一个无限循环小数的形式(在其末尾添加0),对于任意一个无限循环小数都可以转化成一个分数。现在你的任务就是将任意一个无限循环小数转化成既约分数形式。所谓既约分数表示,分子和分母的最大公约数是1。Input有多组数据。每组数据一行。输入为0.a1a2a3...ak(b1b2...bm)的形式,其中a1a2a3...ak为非循环部分,(b1b2b3..bm)为循环部分。数据保证非循 阅读全文
posted @ 2013-08-31 17:35 Felix_F 阅读(293) 评论(0) 推荐(0)
摘要:int n = 6; for (int k = 1; k >(n-1-i)&1); printf("\n"); int b = s & -s; s = (s+b)|(((s^(s+b))>>2)/b); } }就是这么一段小程序...可以按1的个数升序枚举1~2^n所有值 , 其中最后一句位运算更是感觉超酷...我暂时能看懂的:s起始前k位都为1b是s的最低位结果还是看不懂...不得不佩服这个位运算巨巨写出来的 阅读全文
posted @ 2013-08-25 01:50 Felix_F 阅读(449) 评论(0) 推荐(0)
摘要:水题euler 是直接判断euler2 是欧拉筛/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;# 阅读全文
posted @ 2013-08-23 20:32 Felix_F 阅读(221) 评论(0) 推荐(0)
摘要:很容易得出答案就是2^(n-1)但是N暴大,所以不可以直接用幂取模,因为除法操作至少O(len)了,总时间会达到O(len*log(N)) 显然爆的一塌糊涂套用FZU1759的模板+顺手写一个大数-1http://acm.fzu.edu.cn/problem.php?pid=1759标程的做法是用费马小定理 , ap-1≡1(mod p)那么2(1e9+6)%(1e9+7)= 1很容易得出 2k%(10e+7) = 2k%(10e+6)%(10e+7)然后就能用快速幂了 但FZU那题显然不是这么水的...我暂时也没看懂是怎么做的现在看懂这个意思了,根据著名的欧拉公式:A^PHI(C)=1(MO 阅读全文
posted @ 2013-08-22 19:39 Felix_F 阅读(359) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4686又是逗比题...然后就能构造矩阵了重构了一下快速幂...感觉很爽很好用...直接a^b就搞定/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ 阅读全文
posted @ 2013-08-21 15:28 Felix_F 阅读(214) 评论(0) 推荐(0)
摘要:和本文无关 :AC巨巨的数论小结:http://hi.baidu.com/aekdycoin/item/ec528c969cf7a230336eebaePOJ 1222 EXTENDED LIGHTS OUThttp://acm.pku.edu.cn/JudgeOnline/problem?id=1222POJ 1681 Painter's Problemhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1681POJ 1753 Flip Gamehttp://acm.pku.edu.cn/JudgeOnline/problem?id=1753P 阅读全文
posted @ 2013-08-20 00:01 Felix_F 阅读(432) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2891结果看了半天还是没懂那个模的含义...懂了我再补充...其他的思路都在注释里/********************* Template ************************/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc 阅读全文
posted @ 2013-08-19 22:40 Felix_F 阅读(249) 评论(0) 推荐(0)
摘要:http://acm.fzu.edu.cn/problem.php?pid=1402逗比题..和前面那题一样解就行了...反正都是素数,就把中国剩余定理拓展一下...普及姿势好了:逆元:对于同余方程 :我们有 :x就是A对B的逆元了 用EX_GCD求出x即可 ,这里x可能为负数, 对B做正取模中国剩余定理 :对于方程组我们有如下性质然后带公式即可/********************* Template ************************/#include #include #include #include #include #include #include #inclu 阅读全文
posted @ 2013-08-18 22:10 Felix_F 阅读(391) 评论(0) 推荐(0)
摘要:逗比水题...中国剩余定理(适用于互质情况)离线算:k1 % 23 == 0 && k1 % 28 == 0 && k1 % 33 == 1k2 % 23 == 0 && k2 % 28 == 1 && k3 % 33 == 0k3 % 23 == 1 && k3 % 28 == 0 && k3 % 33 == 0ans = (k1*p + k2*e + k3*i) % 21252因为还有天数d 就减d再取模 直接输出就行了/********************* Template ****** 阅读全文
posted @ 2013-08-18 20:27 Felix_F 阅读(225) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1061傻逼题不多说(x+km) - (y+kn) = dL 求k令b = n-m ; a = x - y ;化成模线性方程一般式 : Lx+by=a 再除gcd化简成最简形式 使得L,b互素 (即构造 L'x+b'y =1)求Ex_GCD得到 y * a 就是最后的答案...还是一样要化成正整数形式pair ex_gcd(LL a,LL b){ if(b == 0) return make_pair(1,0); pair t = ex_gcd(b,a%b); return make_pair(t.second , t.fi. 阅读全文
posted @ 2013-08-17 20:34 Felix_F 阅读(199) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1576写了个ex_gcd的模板...太蠢导致推了很久的公式这里推导一下:因为 1 =BX + 9973Y ----------------①且 n = Bk - floor(A/9973) * 9973 ----------------②①*n即 n = BnX + nY * 9973那么 k = nXk = A/B ...而k%9973为所求(n*X)%9973 = (n%9973 * X%9973)%9973 = (n%9973 * (X%9973+9973)) % 9973那... 阅读全文
posted @ 2013-08-17 17:02 Felix_F 阅读(239) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2281又是一道Pell方程化简构造以后的Pell方程为求出其前15个解,但这些解不一定满足等式,判断后只有5个满足的情况,直接判断即可求法可以参照上一篇日志:http://www.cnblogs.com/Felix-F/p/3223323.htmlstruct matrix{ LL ma[2][2];};int n = 2;LL nn[20],xx[20];matrix operator * (matrix a,matrix b){ matrix temp; memset(temp.ma,0... 阅读全文
posted @ 2013-07-30 10:53 Felix_F 阅读(403) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1320题意很简单,有序列 1,2,3...(a-1),a,(a+1)...b 要使以a为分界的 前缀和 和 后缀和 相等 求a,b因为序列很特殊所以我们用数学方法就可以解决 :求和: a*(a-1)/2 = (a+1+b)(b-a)/2化简: 2a2 = b2+ b两边乘4,构造完全平方项 (2b+1)2 -8a2 = 1令 x = 2*b+1; y = a;我们就得到了一个形如Pell方程x2- Dy2= 1的式子x2- 8y2= 1这题就是求Pell方程的第K个解 , 因为方程已经告诉你了所以我们可以目测出最小解以用来构造矩阵来求出.. 阅读全文
posted @ 2013-07-29 17:24 Felix_F 阅读(385) 评论(0) 推荐(0)
摘要:题目链接 : http://poj.org/problem?id=2427PELL方程几个学习的网址:http://mathworld.wolfram.com/PellEquation.html wolfram的讲解http://hi.baidu.com/aekdycoin/item/a45f7c37850e5b9db80c03d1 AC神的博客http://blog.csdn.net/acdreamers/article/details/8529686 acdreamer的博客 (从这里知道的思路...Pell方程 : 形如 X2 - D*Y2 = 1 的式子我们称作Pell方程 (D... 阅读全文
posted @ 2013-07-29 13:24 Felix_F 阅读(754) 评论(0) 推荐(0)
摘要:连分数乱搞,我反正是一眼没看出结果某巨巨把这题讲解的比较详细 :http://blog.csdn.net/gogdizzy/article/details/8727386令k = [a/b] 然后对于a/b 1,那么最终结果p = q = 1 也显然的如果c/d d*p/c 所以 q = q * d / c + 1最后因为 p > q * a / b 所以p = q * a / b + 1LL dfs(LL a , LL b , LL c , LL d){ LL k = a/b; a = a-b*k; c = c-d*k; if(c > d) return 1; ret... 阅读全文
posted @ 2013-07-27 16:10 Felix_F 阅读(203) 评论(0) 推荐(0)
摘要:大数乘法,暴力逐项乘后相加 O(n^2) 或者 用JAVA的BigInteger都超时这时候就要用到FFT了...多项式乘法,大数乘法都能在O(nlogn)时间内解决因为之前没有复变和数字信号课程的基础...所以今天看FFT异常的吃力...一个上午都在研究复数的概念看FFT的定义,下午的时候才开始看FFT的算法...晚上就学了一个别人的板...过了这个水题发现FFT完全就是模板,直接会用就行了...但是这里还是讲解一下原理:首先这个课件应该是最能解决概念性问题的:http://wenku.baidu.com/view/14457119de80d4d8d15a4f34.html然后就是kuang 阅读全文
posted @ 2013-07-25 09:26 Felix_F 阅读(289) 评论(0) 推荐(0)