ACM-数学
文章平均质量分 59
w20810
这个作者很懒,什么都没留下…
展开
-
NJUST1927 谁才是最强战舰!(anti-Nim博弈)
分析:①当全部为1时,且1的个数为偶数,则先手胜②当至少有一个数大于1: Ⅰ.只有一个数大于1。先手必胜,因为此时先手拿完第一把后,可以控制1的个数为奇数个。 Ⅱ.不止一个数大于1,且所有数的异或和不为0。先手必胜,因为先手拿完第一把后,可以控制异或和为0, 且保证至少有2个数大于1。然后先手一直保持异或和为0这个状态,直到拿完后剩下的全为1这一把不这么拿, 这一把完全可以控制拿完后有原创 2016-04-19 16:06:50 · 691 阅读 · 0 评论 -
HDU 1796 How many integers can you find (容斥原理)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1796题意:给你两个数n(n分析:先不考虑重叠的部分,把小于n,且能整除a1的数的个数求出来,即(n-1)/a1,同理,求出a2,a3.....am的。然后把个数加起来,再减去重叠部分的个数就行了。这里给出容斥原理公式:原创 2015-02-21 18:08:04 · 498 阅读 · 0 评论 -
UVA 11806 Cheerleaders (容斥原理)
题目:http://uva.onlinejudge.org/external/118/11806.pdf题意:给定n*m的棋盘和k个一样的石头,最上面和最下面一行,最左边和最右边一列必须放石头,问有多少中方案数。分析:容斥原理。设最上面一行不放石头的方案为集合A,最下面一行不放的方案为集合B,最左边不放的方案为集合C,最右边放的方案为集合D,全集为S。那么答案就是|S|-|A∪B∪C∪D|原创 2015-03-11 10:01:26 · 559 阅读 · 0 评论 -
欧几里德算法及其扩展
欧几里德算法(辗转相除法):gcd(a,b)=gcd(b,a%b);应用:求两个数的最大公约数和最小公倍数求最大公约数代码:long long gcd(long long a,long long b){ return b==0?a:gcd(b,a%b);}求最小公倍数代码:long long lcm(long long a,long long b){ return a原创 2015-01-29 12:24:55 · 646 阅读 · 0 评论 -
HDU 3292 No more tricks, Mr Nanguo(佩尔方程)
题意:输入N,K,求方程x^2+N*(y^2)=1的第K大解,结果MOD8191分析:利用公式,然后直接矩阵快速幂。 http://blog.csdn.net/w20810/article/details/43527357代码:#include #include #include using namespace std;#define M 8191原创 2015-02-06 14:06:10 · 461 阅读 · 0 评论 -
素数判定总结
1.对于百万级别,判断单个数是否为素数,用埃拉托斯尼斯筛法打一个判断是否为素数的表预处理一下。代码:const int N=2000000;bool isprime[N];void doprime(){ long long i,j; for(i=1;i<N;i+=2) isprime[i]=true; isprime[1]=false; isprime[2]=true原创 2015-02-08 16:11:36 · 490 阅读 · 0 评论 -
UVA 10006 Carmichael Numbers (伪素数)
题目:http://uva.onlinejudge.org/external/100/10006.pdf题意:判断是否为卡迈卡尔数(伪素数)。分析:http://blog.csdn.net/w20810/article/details/43603799 先判断n是否为素数,若是,肯定不是伪素数。若不是,枚举a:2~n-1,利用费马小定理:若n是素数,则a^n≡a(mod n),对于所有原创 2015-02-13 13:49:47 · 526 阅读 · 0 评论 -
nyoj 301递推求值 (矩阵+快速幂)
题目:题意:分析:原创 2015-02-15 15:15:45 · 607 阅读 · 0 评论 -
HDU 1757 A Simple Math Problem (矩阵+快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1757题意:已知当n分析:矩阵快速幂.....和nyoj 301题递推求值差不多,构造矩阵即可。http://blog.csdn.net/w20810/article/details/43835393代码:#include #include using namespace std;原创 2015-02-22 18:05:24 · 494 阅读 · 0 评论 -
HDU 1799 循环多少次?(位与杨辉三角)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1799题意:给你一个迭代的for循环, 求循环次数。分析:之前就看到这个题,一直没思路,昨天看了一下容斥原理,突然有了思路。。。。。容斥原理公式 : 输入的m,n,其实就是从n个不同元素元素里面选m个元素,就是求C(n,m)。原创 2015-02-22 21:06:15 · 502 阅读 · 0 评论 -
FZU 1669 Right-angled Triangle (本原毕达哥拉斯三元组)
题目:题意:求满足以a,b为直角边,c为斜边,且满足a+b+c分析:http://blog.csdn.net/w20810/article/details/43564495 枚举m,n求出本原本原毕达哥拉斯三元组(a,b,c),然后将三元组(a,b,c)乘以i(保证i*(a+b+c))代码:#include #include #include us原创 2015-02-06 16:16:33 · 537 阅读 · 0 评论 -
POJ 1305 Fermat vs. Pythagoras (本原毕达哥拉斯三元组)
题意:输入n,求n范围内(x,y,z分析:http://blog.csdn.net/w20810/article/details/43564495 枚举m,n求出本原本原毕达哥拉斯三元组(a,b,c),然后将三元组(a,b,c)乘以i(保证i*a)代码:#include #include #include using namespace std;bool原创 2015-02-06 17:08:55 · 694 阅读 · 0 评论 -
nyoj 461Fibonacci数列(四)(log10()函数)
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=461题意:给你一个n,求出Fibonacci数列中的F(n)的前4位,不足4位的全部输出。分析:化简log10(fibonacci数列通项公式)http://blog.csdn.net/w20810/article/details/43836997 代码:#inc原创 2015-02-16 14:03:17 · 481 阅读 · 0 评论 -
HDU 2082 找单词 (母函数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2082题意:已知有26种数字(1,2,3,4......26),然后输入26个数(m1,m2,m3,....m26),分别代表每个数字的个数,求出总值不超过50的方案数。分析:由于每种数字各选多少个互不影响。 对于数字1,有m1个,用多项式(1+x+x^2+x^3+....+原创 2015-02-16 19:53:32 · 437 阅读 · 0 评论 -
POJ 2661 Factstone Benchmark (斯特灵公式)
题目:http://poj.org/problem?id=2661题意:1960年计算机是4bit,1970年更新为8bit,1980年更新为16bit,以后每十年更新一次(翻一倍),给你一个年份n(1960分析:数据范围比较小,算出21个数即可。直接算阶乘等了几分钟还有4个数没出完。利用斯特灵公式算阶乘,打表。斯特灵公式是一条用来取n阶乘近似值的数学公式。一般来说,当n很原创 2015-02-24 14:21:07 · 570 阅读 · 0 评论 -
Cantor expansion(康托展开)
定义: 将一个整数X展开为如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0! (其中,a为整数,并且0全排列的编码: {1,2,3,4,...,n}的排列总共有n!种,将它们从小到大排序,怎样知道其中一种排列是有序序列中的第几个?原创 2015-02-24 19:51:40 · 1149 阅读 · 0 评论 -
XTU 1229 烦人的异或 (异或运算)
题目:http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1229题目描述如下图,有一N*M的表格,每个格子有一个数字。我们定义主矩形为给出的一对坐标所确定的矩形(该对坐标总是某个矩形的对顶点坐标对)。它最多可产生4个副矩形, 均由主矩形的顶点和表格边界确定。我们需要的是所有阴影部分的数的异或值。原创 2015-04-30 12:15:18 · 856 阅读 · 0 评论 -
CF 305 div2 E. Mike and Foam (容斥原理)
题目:http://codeforces.com/contest/548/problem/E题意:有n个位置,每个位置上对应一个数字a[i],开始所有位置都没有数字,有q次查询,每查询一次,输入位置,如果对应位置上这个数字存在,那么把该位置对应的数字删掉,如果对应位置上的数字不存在,那么把该位置上的数字添上,输出此时有多少对数互质。分析:对一个数而言,找与它不互质的数更简单。找与一个数x不原创 2015-06-04 10:59:54 · 881 阅读 · 0 评论 -
求1~r内有多少个数与n互素
文章转自:http://blog.csdn.net/acdreamers/article/details/9721139问题:求1~r中有多少个数与n互素。对于这个问题由容斥原理,我们有3种写法,其实效率差不多。分别是:dfs,队列数组,位运算。位运算:用二进制1,0来表示第几个素因子是否被用到,如m=3,三个因子是2,3,5,则i=3时二进制是转载 2015-02-19 16:29:20 · 925 阅读 · 0 评论 -
codeforces #343 E. Famil Door and Roads (最近公共祖先LCA+一点点概率)
题目:http://codeforces.com/contest/629/problem/E题意:给定一棵n(n分析:这题认真分析的话,其实很简单。首先定义gx[cur]表示以cur为祖先其后代节点到cur的路径的长度之和。定义gxall[cur]表示树上所有点到cur的路径的长度之和。sz[cur]表示以cur为根的子树的大小。分两种情况讨论:①当u和v不是另外一原创 2016-03-29 11:23:16 · 596 阅读 · 0 评论 -
牛顿迭代法求平方根
求平方根可以用二分的思路。二分其实也挺快的,不过还有更快的算法求平方根——牛顿迭代法。如果我们要求a的平方根,首先令f(x)=x^2-a;那么我们的目的就是求得x使得f(x)=0;在网上找了一张图:由函数f(x)=x^2-a,我们可以知道,函数上任意一点(x,y)的切线的斜率为2x,假设切线方程为y1=kx1+b,那么切线与x轴的交点横坐标为b/k,由已知条件代入得b/k=x-原创 2015-10-11 10:13:13 · 7998 阅读 · 1 评论 -
CF #GoodBye 2014 A~E
题目:B. New Year Permutation (传递闭包+贪心)题意:给定一个排列,然后告诉你哪两个位置可以交换,求交换后字典序最小的排列。分析:首先优先小的数往前面移动,对于将当前要移动的数,找到移动它的最优终点,然后往前面移动就是了。移的话,首先求出图的传递闭包,每次找一个位置移动,并且由这个位置也可以到达最优终点。代码:#include using namespac原创 2015-12-23 22:21:56 · 511 阅读 · 0 评论 -
cf #334 D. Moodular Arithmetic (组合计数)
题目:http://codeforces.com/contest/604/problem/D题意:给定p和k,p是大于2的素数。找满足的方案数,其中.例如p=3,k=2的方案数有三种:f(0) = 0, f(1) = 1, f(2) = 2.f(0) = 0, f(1) = 2, f(2) = 1.f(0) = f(1) = f(2) = 0.分析:当p=3原创 2015-12-03 10:36:51 · 496 阅读 · 0 评论 -
codeforces 324# D. Dima and Lisa (素数问题)
题目:http://codeforces.com/contest/584/problem/D题意:找1个或2个或3个素数,使得找的素数的和为n(nD. Dima and Lisatime limit per test1 secondmemory limit per test256 megabytesinputstandard inpu原创 2015-10-10 18:24:39 · 622 阅读 · 0 评论 -
codeforces #317 C. Lengthening Sticks (很好的想法题)
题目:http://codeforces.com/problemset/problem/572/C题意:给定长为a,b,c的3个木棍,和一个值为l的buf。求使得(a+x,b+y,c+z)构成一个三角形的方案数,其中x+y+z=0,y>=0,z>=0。C. Lengthening Stickstime limit per test1 secondmemo原创 2015-10-20 21:21:46 · 525 阅读 · 0 评论 -
hdu 5411 CRB and Puzzle (矩阵快速幂优化dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5411题意:按题目转化的意思是,给定N和M,再给出一些边(u,v)表示u和v是连通的,问走0,1,2.....M步的方案数。分析:这题和 hdu5318 The Goddess Of The Moon差不多,就是多了一个等比数列求和。代码:#include #include #inclu原创 2015-08-21 15:53:29 · 624 阅读 · 0 评论 -
uva Internet of Lights and Switches (异或运算+状态压缩)
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=13&page=show_contest&contest=350题意:有N盏灯和M个开关,每一个开关控制多盏灯(比如N=4,"0011"就代表这个开关控制第3和第4盏灯),现在问你有多少种按开关的方法使得所有的灯都熄灭(每个开关只能按一次,并且按的开关的原创 2015-08-31 19:13:41 · 1324 阅读 · 3 评论 -
hdu 5392 Infoplane in Tina Town (质因子分解求最小公倍数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5392题意:至今没弄懂题意。按admin的意思猜的:求出每个循环的长度,然后求出这些长度的最小公倍数。结果%3221225473。分析:首先求出每个循环的长度len,由于结果很大,用gcd求最小公倍数的时候不能直接模3221225473(模下gcd是不正确的......),可以将所有的长度len分解原创 2015-08-16 14:31:57 · 964 阅读 · 0 评论 -
nyoj 1000 又见斐波那契数列 (矩阵+费马小定理)
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=1000题意:定义f(0)=a,f(1)=b,f(n)=f(n-1)*f(n-2),给你a,b,n,求出f(n)%1000000007分析:定义(x,y),x代表a的个数,y代表b的个数。 先找规律f(0)=a (1,0)原创 2015-03-03 18:32:34 · 757 阅读 · 0 评论 -
中国剩余定理
参见:数论及应用(ACM-ICPC程序设计系列)定义:若m1,m2,m3,.....,mr 是两两互素的正整数,则同于方程组 x≡a1(mod m1); x≡a2(mod m2); …… x≡ar(mod mr);有模M=m1m2m3m4....mr的唯一解,即中国剩余定理。应用中国剩余定理解线原创 2015-02-04 14:42:36 · 541 阅读 · 0 评论 -
hdu5297 Y sequence(容斥原理+迭代)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5297题意:给定整数n和整数r,在1、2、3、4、5.......的序列中删掉可以开2次方的数,3次方的数,4次方的数,.......r次方的数,剩下的数称为Y序列,求Y序列中第n个数是多少。分析:对于一个数x,如果求出x在Y序列的位置就好办了。 先不管序列中的1,假如r=3,可以开2次原创 2015-07-23 10:08:42 · 1559 阅读 · 0 评论 -
欧拉函数
定理1:如果f是一个乘(积)性函数,对任意正整数n有素数幂分解,那么 。定理2:如果p是素数,那么φ(p)=p-1;反之,如果p是一个正整数且满足φ(p)=p-1,那么p是素数。定理3:设p是素数,a是一个正整数,那么φ(p^a)=(p^a)-(p^(a-1));定理4:设m,n是互素的正整数,那么φ(n*m)=φ(n) * φ(m)。(即欧拉函数是积性原创 2015-02-09 20:48:30 · 480 阅读 · 0 评论 -
逆元小结
一、若a与n互素,那么可以用扩展欧几里德和欧拉函数求出a对于n的逆元。ax≡1(mod n),x为a对于n的逆元。用欧几里德求逆元x://a与n互素,逆元才有解 #include #include using namespace std;typedef long long LL;void exgcd(LL a,LL b,LL &d,LL &x,LL &y){ if(!b)原创 2015-08-15 16:45:18 · 1419 阅读 · 1 评论 -
hdu5288 OO’s Sequence(质因子分解+二分)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5288题意:区间[L,R],若L分析:求出每个数对答案的贡献即可。对于每个a[i],求左边离a[i]最近且可以整出a[i]的位置L[i]和右边离a[i]最近且可以整出a[i]的位置R[i],那么a[i]对答案的贡献就是(R[i]-i)*(i-L[i])。怎么求L[i],首先将每个数的位置按输入顺序存原创 2015-07-22 22:01:05 · 695 阅读 · 0 评论 -
LA 5092 && hdu 3723 Delta Wave (卡特兰数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3723 and http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20568题意:有种折线每向右延伸一个单位长度,高度要么不变,要么加1,要么减1。而且任何时刻高度不能低于0。求这种折线最终高度为0的情况总数。分析:由于任何时刻斜原创 2015-08-09 23:00:58 · 672 阅读 · 0 评论 -
佩尔方程
参见:维基百科定义:若一个不定方程具有这样的形式:则称此二元二次不定方程为佩尔方程 若n是完全平方数,则这个方程式只有平凡解。解佩尔方程:若佩尔方程的最小特解(最小正整数解)是(x1,y1),那么可有迭代公式 。求出所有正整数解(xk,xk),用矩阵表示如下原创 2015-02-05 14:13:53 · 1473 阅读 · 0 评论 -
同余式定理
定理1(威尔逊定理):若p是素数,(p-1)!≡-1(mod p)。定理2(费马小定理):假如p是素数,且gcd(a,p)=1,那么a^(p-1)≡p(mod p)。定理3:若p是素数且a是正整数,那么a^p≡a(mod p)。多面体欧拉定理:在一凸多面体中,顶点数-棱边数+面数=2。欧拉函数的定义:设n是一个正整数,欧拉函数φ(n)定义为不超过n且原创 2015-02-07 14:32:03 · 821 阅读 · 0 评论 -
UVA 11029 Leading and Trailing (log10()函数+快速幂)
题目:http://uva.onlinejudge.org/external/110/11029.pdf题意:给出n和k,计算n^k的前三位和后三位数字。0分析:令x=log10(n^k),变形有x=k*log10(n),那么x的值为p0.p1p2p3p4p5........,其中p0+1就是n^k的位数,n^k=(10^p0)*(10^0.p1p2p3p4p5.....),只需计算10^原创 2015-02-15 17:29:32 · 449 阅读 · 0 评论 -
等比数列求和
快速求出 (1)当时,(2)当时,那么有 (3)当时,那么有原创 2015-02-03 21:36:01 · 691 阅读 · 0 评论 -
POJ 2689 Prime Distance(筛选两次素数)
题意:给定两个数L,R(1≤L<R≤2 147 483 647),在[L,R]内找出相邻素数C1,C2使其距离最小,找出相邻素数C3,C4使其距离最大。若距离相同,选最初的一组。(R-L分析:L和R的范围比较大,不能直接打表。根据基本素数判别法可知:正整数N是素数,当且仅当N不能被任何一个小于sqrt(N)的素数整除。如果N是一个合数,那么N必然存在一个小于sqrt(N)的素数因子。而sqrt原创 2015-01-30 20:34:58 · 666 阅读 · 0 评论