上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 23 下一页
摘要: 题目求φ(a)+φ(a+1)+...+φ(b-1)+φ(b)。 用欧拉筛选法O(n)计算出n以内的φ值,存个前缀和即可。 φ(p)=p-1(p是质数),小于这个质数且与其互质的个数就是p-1; φ(p*a)=(p-1)*φ(a)(p是质数且p不能整除a),因为欧拉函数是积性函数,φ(p*a)=φ(p 阅读全文
posted @ 2016-02-05 22:10 WABoss 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目求小于n不与n互质的正整数的和。 一个结论是小于n与n互质的正整数和=φ(n)*n/2。 因为如果a与n互质,那么n-a也与n互质,即若gcd(a,n)=1则gcd(n-a,n)=1,反证法即可证明。 也就是说小于n与n互质的数是成对的,且它们的和是n,共有φ(n)/2对。 所以小于n与n互质的 阅读全文
posted @ 2016-02-05 20:09 WABoss 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目问有多少个小于n的正整数与n互质。 这个可以用容斥原理来解HDU4135。事实上这道题就是求欧拉函数$φ(n)$。 $$φ(n)=n(1-1/p_1)(1-1/p_2)\dots(1-1/p_m)\tag{p为n的质因子}$$ 这个通项公式可以通过容斥原理的解法来验证。那么利用这个通项就能在$O 阅读全文
posted @ 2016-02-05 17:44 WABoss 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目问[1,n]有几个数是$m^k (k>1)$形式。 如果这样考虑,m已知k未知,对于每一个m统计其k的数量即$\lfloor log_mn \rfloor$个,再容斥,然而m太多了,完全不可行。 而k远远比m还少,应该反过来考虑,m未知k已知,对于每一个k统计其m的数量,即$\lfloor \s 阅读全文
posted @ 2016-02-05 09:08 WABoss 阅读(259) 评论(0) 推荐(1) 编辑
摘要: 题目。。大概就是有个m*n个点的矩形从(1,1)到(m,n),问从(0,0)出发直线看过去最多能看到几个点。 如果(0,0)->(x,y)和(0,0)->(x',y')两个向量平行,那后面的那个点就看不到了。 因此给出一个点(x,y),判断它能否被看到,就是是否能找到一个大于1的k,使k|x且k|y 阅读全文
posted @ 2016-02-04 23:05 WABoss 阅读(1136) 评论(0) 推荐(0) 编辑
摘要: 题目求[A,B]区间内与N互质数的个数。 可以通过求出区间内与N互质数的个数的前缀和,即[1,X],来得出[A,B]。 那么现在问题是求出[1,X]区间内与N互质数的个数,考虑这个问题的逆问题:[1,X]区间内与N不互质数的个数。 于是就可以先处理出N的所有质因数{p0,p1,p2,...,pn}。 阅读全文
posted @ 2016-02-04 21:18 WABoss 阅读(1242) 评论(0) 推荐(1) 编辑
摘要: 题目给一个数字集合,问有多少个小于n的正整数能被集合里至少一个元素整除。 当然是容斥原理来计数了,计算1个元素组合的有几个减去2个元素组合的LCM有几个加上3个元素组合的LCM有几个。注意是LCM。 而[1,n]中能被x整除的数字有$ \lfloor \frac nx \rfloor$个,因为设有$ 阅读全文
posted @ 2016-02-04 20:15 WABoss 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目的代数系统可以看作整数模9973乘法群?然后存在乘法逆元。 于是题目要求$A \div B \pmod {9973} $其实就相当于求$A \times B^{-1}\pmod {9973} $。 只要求出B的逆元就OK了。 计算模n下的乘法逆元可以用用扩展欧几里得算法求解,即解下面的线性同余方 阅读全文
posted @ 2016-02-04 10:49 WABoss 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程: $$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$ 最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。 1 #include<cst 阅读全文
posted @ 2016-02-03 19:50 WABoss 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 线性同余方程$ ax \equiv b \pmod n$可以用扩展欧几里得算法求解。 这一题假设青蛙们跳t次后相遇,则可列方程: $$ Mt+X \equiv Nt+Y \pmod L$$ $$ (M-N)t \equiv Y-X \pmod L$$ 于是就构造出一个线性同余方程,即可对t求解,解出 阅读全文
posted @ 2016-02-03 16:31 WABoss 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目问$A^B$的所有因数和。 根据唯一分解定理将A进行因式分解可得:A = p1^a1 * p2^a2 * p3^a3 * pn^an.A^B=p1^(a1*B)*p2^(a2*B)*...*pn^(an*B);A^B的所有约数之和sum=[1+p1+p1^2+...+p1^(a1*B)]*[1+ 阅读全文
posted @ 2016-02-02 20:16 WABoss 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 题目大概是抢劫银行,每家银行都有一个收益和一个被抓的概率,求在被抓概率小于P的条件下能获得的最大收益。 dp[i][j]表示抢劫前i家银行收益为j被抓的最小概率 dp[0][0]=0 dp[i][j]=min(dp[i-1][j],dp[i-1][j-m[i]]+(1-dp[i-1][j-m[i]] 阅读全文
posted @ 2016-02-01 22:51 WABoss 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 题目问一个数字字符串的不重复全排列有几个能被d整除。 dp[S][m]表示用字符集合S构成的%d为m的数字字符串个数 dp[0][0]=0 我为人人转移,dp[S+{x}][(m*10+str[x]-'0')%d]+=dp[S][m](x∉S) 最后的结果再除以各字符出现次数的阶乘就是答案了,即dp 阅读全文
posted @ 2016-02-01 22:45 WABoss 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题目是在n*n的棋盘上放k个车使其不互相攻击的方案数。 首先可以明确的是n*n最多只能合法地放n个车,即每一行都指派一个列去放车。 dp[i][j]表示棋盘前i行总共放了j个车的方案数 dp[0][0]=1 转移就是从第i-1行转移到第i行,对于第i行要嘛放上一个车要嘛不放,放的话有n-j-1种方法 阅读全文
posted @ 2016-02-01 20:43 WABoss 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目问一个合法字符串的字典序是第几个,合法的字符串是指里面的字符严格递增。 先判断合不合法,然后用类似康托展开的过程去求。大概过程就是用组合数算出某长度某前缀有几个,累加起来。 真难一遍写对。。 1 #include<cstdio> 2 #include<cstring> 3 using names 阅读全文
posted @ 2016-02-01 15:59 WABoss 阅读(203) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 23 下一页