数学
文章平均质量分 71
liverpippta
这个作者很懒,什么都没留下…
展开
-
SPOJ LCMSUM&GCDEX
爱神博客上的两道数论题。SPOJ做的苦不堪言。。。灰常难受的说,各种卡时。。。。。然后因为一个小错误,WA了很长时间。。。。PS:代码能力已经真心不忍直视了,导致长沙网络赛没有过前70。。。。。。。不多说先是LCMSUM这道题f(n) = sigma{lcm(i,n)} =sigma{ (i*n)/gcd(i,n)}分母都不一样,所以要去分母,将n与gcd约分后,可以看到,对于gcd(原创 2013-09-26 10:41:58 · 1299 阅读 · 0 评论 -
Digital Root的问题
有关Digital_Root,大概就是求一个数的各个位之和,若这个数为个位数,则它即原数的DigitalRoot,若不是,则再对它进行数位求和。这个在网上看到有个公式是F(N)=(N-1)%9+1;证不出来,群里问了牛人,牛人果断几S解决了,ORZ......牛人是这样提示我的:把N表达为sum(a[i]*10^i),sum(a[i]*10^i)=sum(a[i])(mod 9)....刚开始原创 2013-05-14 00:23:41 · 781 阅读 · 0 评论 -
codeforces 181 div2 C&E
比赛没打,B题估计写不熟练,C题虽然赛后搞定了,但不是很熟练,比赛做坑定不行这题正面思考会很吐,尤其是YYdp的话,就及其不可取了。从一个条件入手,就是数字之和为good数,由于n=10^6,所以good数,也就是所有excellent数的数字之后也不过就是2^1+2^2+2^3+..2^7#include #include #define u 127#define mod 100原创 2013-04-26 15:07:11 · 1026 阅读 · 2 评论 -
HDU 4549
这是一道数学题,刚开始有点吓人。。表面上看没啥思路,于是就是试着写了几个,发现f(n)=a^fib(n-1)*b^fib(n),n>=2,嘿嘿,这下有了然而今晚状态真是差的一塌糊涂,各种错误+各种NC思路。。。哎,不多说,拙计。。。。求a^fib(n)%mod,mod=10^9+7,由于mod是一个大质数,根据费马小定理,a^(mod-1)=1(mod m),所以a^x有一个循环节,这个循原创 2013-05-22 23:21:09 · 1487 阅读 · 1 评论 -
SGU 119 数论
还是没有想到简单的方法,具体咋样自己百度吧。。。。方法搞得麻烦,快把自己整吐了,好在最后AC了。。。。。。T__T首先是特殊情况,分别是a=0或b=0时,这个省略了接下来:根据题意,(A0x +B0y) % n =0 转换为 A0x+ B0y = nk,首先判断 n 是否整除g=gcd(a0,b0),如果不整除,则该方程无解,令n1 = n*g/gcd(n,g)。如果n整除g,则n1 =g原创 2013-05-18 20:11:48 · 1168 阅读 · 0 评论 -
SGU 106
这题细节很多,写的很麻烦。首先把c移到等号右边,这样好处理。其实就是求区间,关键是在计算x1,x2所对应的y11,y22会出现小数,要把小数变成整数,根据一次函数特性做误差处理。。。。附代码:#include #include #include #define ll __int64#define MAX(a,b) ((a)>(b)?(a):(b)) #define MIN(a,b)原创 2013-05-15 21:56:16 · 789 阅读 · 0 评论 -
hdu 4542 数论
在搜索方面仍然是渣的水平,高度拙计~不可救药。。。。之前算法还搞错了,弱爆。。。第一问,可以参考codeforces 27E,实际上就是一个搜索,用到分解质因数法求约数个数的知识,然后搜索第二问,搞一个不等式就得了,设g(x)为x的约数,则g(x)K...更正算法法,不断TLE,后来搞几个预处理,过了。。。附代码:#include #include #include #inc原创 2013-04-19 22:49:43 · 1009 阅读 · 0 评论 -
SGU 108
小技巧弱爆。。。。还是有些东西没有领悟透彻~慢慢攒经验吧,只能这样这个题是故意卡时间,空间限制竟然仅有4M。。。。目测连打表都要MLE。。。。真心给跪~拿到这题,第一反映是筛法,直接暴力筛肯定MLE,想过打表,还是不行。。。弱狗很无奈,只有看题解~实际上,这道题的筛法有一个特点,每次筛的结果都比上次结果大,大的范围很小,不足64。这有神马用?想到背包中的滚动数组了,为什吗可以减一维,是原创 2013-04-14 14:38:27 · 941 阅读 · 0 评论 -
Codeforces #176 div1 A
这次比赛总算是涨rating了。。。。还是在队友的帮助下,div2 的B题题意还是没有搞清,导致直接被hack...以后真的不要这样了,一个水二分,哎。。。比赛看C的时候也没啥思路,后来队友搞定了(V5),跟我说了一下思路,有一个4的循环令f(i)=j,则f(f(I))=n-i+1,f(f(f(i)))=f(f(j))=n-j+1,f(f(f(f(i))))=f(f(n-i+1))=i;原创 2013-03-26 13:45:32 · 867 阅读 · 0 评论 -
zoj 1530 记忆化搜索
一直想做这样的题,果然做完之后有了些领悟,代码打得无比生疏,花了老长时间才过的~刚开始也没神马思路,搜了搜解题报告,大多数都是爆搜,这样没有意思,后来找到了一篇用记忆化优化搜索做的,给力~dp[i][k][j]:是否存在一个n位数,i位,以k数字大头,模n为j.值分0,1,2:若为0,不存在这样的数,值为1,上一位也就是第二位为0,值为2,上一位为1.way[i][k][j]:状态与前原创 2013-02-21 22:01:05 · 694 阅读 · 0 评论 -
codeforces 167div2-4
在这道题有表现了本菜N多NC细节....比赛的时候没有真正领悟题意,导致没敲出来,后来敲完后,也是有不少错误,代码写的尤其复杂,弱爆了...贴代码:说白了这题就是N!/2^m模型,约分解决,这个我给些复杂了,去分解质因子了,结果一直卡一个数据,看了队友的代码,才过....贴代码:#include #include #include #include #define ll __in原创 2013-02-14 14:39:56 · 572 阅读 · 0 评论 -
codeforces 258C
这道题拖到现在才AC,而且花了很长时间,前半个寒假+考试月1个半月的时间,没怎么打代码,手和脑生疏了不少....#include #include #include #include #define N 100005#define ll __int64#define pb push_back#define mod 1000000007#define ss(a) scanf("原创 2013-02-13 21:16:42 · 692 阅读 · 0 评论 -
CF 162-div2 D 数学+dp
一道运用数学特征的dp题,尽管现在很忙,但是这样的题值得去做....O(n*n)的算法是很容易被想到的,直接暴力即可,但铁定超时,这个时候就要运用数学规律来解决......仍然令d(x)为以数x位结束的最长数列的长度。f(x)是max(d[p]),其中x是p的约数。这样复杂度大概为O(n*sqrt(n))....附代码:#include #include #include #defin原创 2013-02-02 17:38:23 · 940 阅读 · 0 评论 -
长沙邀请赛A&E
都是独立完成的,而且都比较顺利的敲了出来。。A题,详见组合数学中关于用齐次方程法表达递推公式那一节,直接上代码了:#include #include #define cl(a) memset(a,0,sizeof(a))#define ss(a) scanf("%I64d",&a)#define ll __int64#define N 35using namespace s原创 2013-06-05 13:23:53 · 749 阅读 · 0 评论 -
hdu 3664
当年鸟神现场赛处子秀挂掉的题,还埋怨了RudySnow......(PS:这事过去很久了,如今2位也都学业有成了,向学长看齐)这个东西具体数学中有,我没看过具体数学当然也不知道,自然这题也不会做。。。。后来知道了公式是这样:F(I,J) = (J+1)* F(I-1,J) + (I-J) * F(I-1,J-1)这个公式证明,想了很久才懂。。。。弱菜不解释~对于F(i-1,j)原创 2013-07-08 00:57:11 · 1050 阅读 · 0 评论 -
关于莫比乌斯反演的几个题目(更新中)
网络赛中有一道数论题出现了莫比乌斯反演这个概念,今天就学了一下当g(x) = sigma{f(d),d|x}则f(x) = sigma{mu(d)*g(x/d),d|x} 其中mu(d)为莫比乌斯函数,详细了解请看具体数学吧1.SPOJ VLATTICE果断不会的,就翻了题解,这道题题解刚开始都看不懂。后来才知道,莫比乌斯函数有另一种形式当g(x) = sigma{原创 2013-10-10 00:20:51 · 3167 阅读 · 0 评论 -
ZOJ 3674
找格点三角形,先是计算由随便三个点构成的图形,即C(N*M,3)然后删掉三点共线的图形,先是考虑竖线和横线的情况,这个简单斜线怎么办?真弱,没有想到。。 = =枚举2个点,(两个边点),那么与它两个点共线的中间点也就确定了。其实这样的两个点,还能确定一个矩形,而在一个大矩形中,有很多类似的小矩形。。。kuangbin的博客是这么写的,枚举矩形。。。。附代码:#include #i原创 2013-08-13 20:18:45 · 926 阅读 · 0 评论 -
hdu 4373 数论
额,首先要推个公式。。就是一个T1循环后面跟着m个TYPE2循环的复杂度(显示语句次数)这公式刚开始也不会推了,后来随便整,发现了个规律ANS = C(m,0)+C(m,1)+...+C(m+n-1,n-1) 组合数学当中有个公式,C(M,0)+C(M,1)+....+C(m+n-1,n-1) = C(m+n-1,n) 接下来就是求C(M+N-1,N)%MOD出题人太坑爹了,原创 2013-08-13 12:48:12 · 936 阅读 · 0 评论 -
hdu 4294 还是搜索+数学
嗯,做了一道和上一题类似的题,卡时真心坑爹啊。。。有一个地方没有搞懂,就是为什吗长度是2a,aa,aaa,aaaa.....aaaaaa..aaaa这样的数每生成一个,对n取模得到一个数b,记录数组b[i],当i=n+1时,根据鸽巢原理,必有i,j使得b[i]=b[j]把a[i]和a[j]相减,得到aaaaa...00000 肯定存在n的倍数只有2个数字接下来枚举就是了用p原创 2013-08-08 20:35:11 · 858 阅读 · 0 评论 -
hdu 4474 数位搜索
这道题比赛的时候很坑,不要以为N=10^4就可以暴力,答案都能超过Long long你还暴力搞?其实对付数位的题,我感觉还是搜索最应该优先考虑,而实际上这道题就是搜索,怎样剪枝呢?这是难点,其实记录得到的数对n取模就好,并且搜索时按照往后加数,这样的话叶子节点总是new = odd*10 +b[i],其中b[i]是可以用到的数位,这样的话,若存在两个点x,y,它们对n取模相同,这样的话保留小数原创 2013-08-07 21:25:03 · 1327 阅读 · 0 评论 -
HDU 4345 数学+dp
这道题的背景是一个置换,1个置换的循环是它子置换的最小公倍数,所以这道题可以转换成1个纯数论问题,将n划分为若干数,这些数组成的最小公倍数有多少种?DP弱啊。。。竟然不会,5555后来看了几篇题解(包括zz1215的)。大概我有个地方没有想明白刚开始dp[i][x]表示当前和为i,且包含最大质因子不超过素数表第t个素数的情况状态转移时dp[i][x] = dp[i-x][t-1]+原创 2013-08-06 16:57:47 · 895 阅读 · 0 评论 -
Codeforces 126D
感谢wuyiqi博客中提供的题,这道题我觉得还不错,难度适中~首先有一点就是如何去找任意一组解,其实贪心就可以,从大到小来,只要n>=f[i],n-=f[i].为什吗这样的贪心是可行的,因为当i逐渐减小时,相邻的f[i]差值递减,并且最终等于0,而且f[1]=1,大概有一种极限的思想。。。想明白这个就好办了,把n的某一种表达法换成01序列的模式,比如14=13+1,可以写成100001(1原创 2013-08-05 08:59:41 · 952 阅读 · 0 评论 -
福大校赛G&J
福大校赛好像2个月前举办的,在福大OJ上搞了同时的在线比赛,当时做了一下,切了4道题。。。之后把G和J独立完成,现在说一下这两道题G(FZU 2127)构建符合条件的三角形个数,先列个方程,发现是就是解三元不定不等式组组,虽说三元方程,但可以穷举某一个变量,进而以时间的代价简化问题复杂度,简化为二元不等式组,画图搞定,一些细节要考虑清楚,不过我是1A。。。代码:#include #inc原创 2013-07-21 19:10:37 · 1030 阅读 · 0 评论 -
hdu 2855
这道题要用到整体的思想,原因在于有组合数,组合数C(N,K)和C(n,k+1)之间没有直接的关系。受到昨天的启发,利用二项式公式,就把fib(n)拆成直接的表达式,也就是带根号5的内个表达式,之后整理,发现g(n) = 3 * g(n-1) -g(n-2), 附代码:#include #include #define N 40#define ss(a) scanf("%d",&a)#de原创 2013-07-20 15:05:30 · 823 阅读 · 0 评论 -
hdu 3483 矩阵构造
这道题寒假的时候看过,还不小心看了题解,不过题解说神马早就忘了,刚开始解题的时候完全想错了,后来才想起来是用矩阵构造这道题的确适合构造矩阵,因为所求的函数值满足线性关系,令F(N)为最终求解值首先我们要明确如果用矩阵的作法,那么矩阵乘法中,最终矩阵,必须包含F(N),还可以包含其他函数g(n),h(n)等等。作为乘数项的矩阵不得与N有关,只能与x有关F(n+1) = F(n) +原创 2013-07-19 20:33:52 · 791 阅读 · 0 评论 -
hdu 4473 诡异的数论题
这是去年成都邀请赛的题,听zz_1215说这个数论题很独特,果然如此,现场赛只有3个队通过竟然。。。后来看了题解,顿时惊呆。。首先先来看一个这样的题,问f(1)+f(2)+..+f(n),其中f(x)是x的约数的个数这个问题可以转换为a*b然而不同的理解方式显然有着很大的区别,如果按照第一种思维方式去理解,显然拿到这道题后就得心应手了言归正传,这道题是不是可以转化为a*b*c#原创 2013-07-02 15:57:06 · 1089 阅读 · 0 评论 -
uval 5900 二分+枚举
内部比赛的一道题,话说头次碰到uval系列。。题意很简单,就是找到不同的(m,k)对,使C(m,k)=n枚举时,保证k先求k=1和k=2的情况,然后再找k>3的情况,由于m上限为10^15,查找k>=3情况时,枚举N的上限为2*10^5即可。。。注意重复(略坑),附代码:#include #include #include #include #include #原创 2012-12-12 16:55:33 · 2411 阅读 · 0 评论 -
hdu 2824 最简单的欧拉函数初始化模版
这题卡空间很严格,所以要求代码精简,经过多次优化之后,觉得这个还不错(话说LONG LONG 型数组废空间呀,应该是int的两倍吧。。。。)#include #include #include #include #include #include #define ss(a,b) scanf("%d%d",&a,&b)#define N 3000005#def原创 2012-11-24 20:26:47 · 997 阅读 · 0 评论 -
hdu 1588
这个题是个很好的题,是一道很张姿势的题。。。。题意就是求f(b)+f(k+b)+..+f((n-1)*k+b),一个个用矩阵快速幂的花坑定超时。。详见我博客中的另一篇文章(转的那篇斐波那契数列。里面又对这题的详细解释)话说这题做的好好复杂,调试了一个下午,把自己搞得彻底晕晕乎乎。。好在1A了最后#include #include #include #include #i原创 2012-12-07 12:48:02 · 946 阅读 · 0 评论 -
hdu 4045 组合数学
题目大概意思就是说有n个机器,每天选择r个机器,这任意r个机器编号差不能分两部分做,第一部分是把n个机器选择成r个机器。。但编号差不超过k如何处理?第二部分一看就是裸的斯特灵数。。两部分结果相乘为最后答案。下面说第一部分,假设每个机器的编号差就是k,这样会出现一个空档,空当数为e=n-(r-1)*k-1,然后把这个空档分配到不同的区域中,r台机器有(r+1)个区域。。。根据插板法的公式原创 2012-10-06 16:32:14 · 1587 阅读 · 0 评论 -
hdu 4059 推公式+容斥
去年大连赛区现场赛的一道题。应该说一看就要用到容斥原理,筛除与n不互质的数即可。。问题是如何求公式1^4+2^4+3^4+...+n^4?这首先要明白1^2+2^2+3^2+...+n^2=1/6n(2n+1)(n+1)是如何来的(不是数学归纳法)。。(1+1)^3=1^3+3*1*1+3*1*1+1(2+1)^3=2^3+3*2^2*1+3*2*1+1...(n+1)^3=n^3原创 2012-09-14 18:52:52 · 930 阅读 · 0 评论 -
hdu 4335多校4数论
这题拿来以后以为是个神题.....T T后来看了结题报告,说这是简单题,报告上说啥我没有理解。后来又看了看其他的东西,发现我有一个公式不知道,这个公式详见:http://hi.baidu.com/aekdycoin/item/e493adc9a7c0870bad092fd9A^x=A^(x%phi(p)+phi(p)(mod p)...其中,x>=phi(m)这样就可以通过公式求解,当原创 2012-10-03 15:20:50 · 948 阅读 · 0 评论 -
hdu 1695 数论+容斥原理
这道题的意思很清晰略掉。假设a1a1时,求1-a1内与x1互质的数。本题细节非常多,首先是k=0的情况,然后又一个细节我一直没有考虑到,直到看了别人的代码才明白。。就是a1,b1同除玩k之后,看看这两个数有没有0。。。。附代码: #include #include using namespace std;#define clear1(a) memset(a,0,size原创 2012-09-07 17:06:34 · 659 阅读 · 0 评论 -
一些有用的数论公式
斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很大的时候,n阶乘的计算量十分大,所以斯特灵公式十分好用,而且,即使在 n很小的时候,斯特灵公式的取值已经十分准确。公式为:以下等式或者不等式均可以用数学归纳法予以证明!1 + 3 + 5 + ... + (2n - 1) = n^21*2 + 2*3 + 3*4 + ... +转载 2012-09-05 16:42:20 · 926 阅读 · 0 评论 -
hdu1431
又是区间题,要是在比赛,果断先想打表。然而暴力的打表并不是平常练习数学题的好方法,这道题找的是回文素数,刚开始我也觉得只能暴力打表,没啥思路,而且打表的人灰常灰常多。后来就百度了一下,发现一个问题,偶位数回文数必整除11.先温习一下忘掉多年的知识,能整除11的数的条件:数的偶数位和与奇数位和的差可整除11,即整个数可以整除11.易证偶位回文数整除11.这样就缩小了打表范围,而且缩小了90%!由于本原创 2012-09-04 22:33:38 · 1192 阅读 · 0 评论 -
多校10-1005 搜索优化
本题题意很简单,略掉。这里首先要讲一个问题,就是一个数的平方的后n位数是有该数的后n位决定的,证明略。这样就可以用搜索剪枝的方法去做了。附代码:#include #include using namespace std;struct node{ int v; int d;};queueq;const int Max=0xfffff原创 2012-08-29 16:39:25 · 572 阅读 · 0 评论 -
POJ1830,01矩阵高斯消元
拿到这道题后,没啥思路,后来看了几份解题报告后,才发现这题用线性方程组来解,终于知道了线性代数在ACM的用武之地了。由于是中文题,题目解释略。直接说解题思路:设A矩阵是灯泡关系矩阵,A[[I][J]表明:对第J个灯实行一次操作后,第I个灯的状态也随之改变。B为结果矩阵,也就是灯的状态是否改变,改变为1,不变为0.这样AX=B求X即为题目中的解。本题求的是解的个数,有线性代数知识所得:当AX=B增广原创 2012-07-09 19:56:44 · 3925 阅读 · 0 评论 -
poj2992数论与组合数学,略水。。。
这题刚开始拿起来就果断用唯一分解定理,结果发现TLE。。。。。发现貌似数据超大,给做一个预处理。。。可是怎嘛预处理?不知道。后来看了别人的评论惊奇的发现前几天学过的一个定理用上了场,就是判断N!中有几个质因子:P(N!)=N/i+N/i^2+N/i^3+.....N/i^m(i为一个质因子,m是使N/i^m=0的最小值)这样的化就可以预处理了,然后利用公式C(N,K)=N!/(K!*(N-K)原创 2012-05-24 23:24:29 · 1711 阅读 · 1 评论 -
poj2689两次筛法
我们都知道一次筛法求1-n之间的素数,这个筛法的算法复杂度为O(N),但题目中的U,L最大值可为整型上限,用纯粹的暴力筛法肯定要超时?怎么办,用二次筛法。U和L之间的合数,质因子不超过O(L^0.5),于是用筛法选出50000内的素数即可,因为50000的平方大于整形上线了。再用这些素数去筛出U-L之间的合数,剩下的就是U-L之间的素数了,边筛边计算两个素数之间的差,就OK了。另外,尤其小心的是U原创 2012-07-14 09:45:14 · 3797 阅读 · 0 评论 -
多小联合5-1011判断组合数的奇偶性
这是本次多校联合最后一道题,也是最简单的一道,然而我却怎么也想不出来。。。后来在网上找了找相关的资料,发现有一个重要的结论不知道。对于组合数C(n,k)来讲,若n&k=k,则C为奇数,反正为偶数。证明貌似很繁琐,略。。这个结论知道了,这道题就没有难度了。接下来枚举k,把N,k换位2进制,对与n的任意一位而言,若此位上的数为1,则k在该位上的数既可以为1,也可以为0。因为此时,0&k[i]=k[i]原创 2012-08-08 17:55:21 · 1058 阅读 · 0 评论