首先,我们珂以抽象出S函数的模型:把n拆成k个正整数,有多少种方案? 答案是C(n-1,k-1). 然后发现我们要求的是一段连续的函数值,仔细思考,并根据组合数的性质,我们珂以发现实际上答案就是在让求2^(n-1). 然鹅我们并不能高兴地过早.因为n的数量级竟然到了丧心病狂的1e100000.连高精度都救不了它. 费马小定理 费马小定理有两种形式:  $a^{p-1}$≡1($mod$ $p$)   与 $a^p$≡$a$($mod$ $p$). 第二种形式更为通用,是因为第一种形式不能涵盖“$…
Kyoya Ootori has a bag with n colored balls that are colored with k different colors. The colors are labeled from 1 to k. Balls of the same color are indistinguishable. He draws balls from the bag one by one until the bag is empty. He noticed that he…
链接:https://www.nowcoder.com/acm/contest/106/B 来源:牛客网 题目描述 It's universally acknowledged that there're innumerable trees in the campus of HUST. One day Xiao Ming is walking on a straight road and sees many trees line up in the right side. Heights of e…
Sum                                                                                Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)                                                                               Tot…
看题解一开始还有地方不理解,果然是我的组合数学思维比较差 然后理解了之后自己敲了一个果断TLE.... 我以后果然还得多练啊 好巧妙的思路啊 知识1: 对于除法取模还需要用到费马小定理: a ^ (p - 1) % p = 1; -> a ^ (p - 2) % p = (1 / a) % p; 巧妙1: for(int i=1;i<=n;i++) { int temp; scanf("%d",&temp); sum1[temp]++; } for(int j=i;…
题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友就打表找到公式了,然后我就写了一个快速幂加个费马小定理就过了去看别的题了,赛后找到了一个很不错的博客:传送门,原来这道题也可以用DP+矩阵快速幂AC.下面说下组合数学的做法: 首先一共有4^n种情况,我们减去不符合条件的情况就行了,从中取k个进行染红绿色一共C(n,k)种情况,剩下的蓝黄色一共有2^…
题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                         (全题文末) 知识点: 整数n有种和分解方法. 费马小定理:p是质数,若p不能整除a,则 a^(p-1) ≡1(mod p).可利用费马小定理降素数幂. 当m为素数,(m必须是素数才能用费马小定理) a=2时.(a=2只是题中条件,a可以为其他值) mod m =  *      //  k=…
Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your job is to determine S modulo 29 (the rest of the division of S by 29). Take X = 1 for an example. The positive integer divisors of 2004^1…
A Boring Question Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 156    Accepted Submission(s): 72 Problem Description       Input   The first line of the input contains the only integer T,(1≤T…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667 费马小定理: 假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p). 即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1. 注意这里使用快速幂的时候要根据费马小定理对p-1取模.还有注意a%p=0的情况. 递推式:f(n)=f(n-1)*c+f(n-2)+1 非齐次. 构造矩阵: |c | | | | | 初始…
费马小定理题意:求s1+s2+s3+...+sn;si表示n划分i个数的n的划分的个数,如n=4,则s1=1,s2=3    利用隔板定理可知,就是求(2^n-1)%mod-----Y    现在已知 (2^mod-1)%mod = 1,所以  Y = 2^( (n%(mod-1) -1 +mod)%mod )%mod 证明( 定理:a^(p-1)==1%p,gcd(a,p)==1 ):    (http://www.cnitblog.com/luckydmz/archive/2008/06/0…
A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10383    Accepted Submission(s): 8302 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1).   Input 数据的第一行是…
昨天做了一个题,简化题意后就是求2的n次方对1e9+7的模,其中1<=n<=10100000.这个就算用快速幂加大数也会超时,查了之后才知道这类题是对费马小定理的考察. 费马小定理:假如p是质数,且gcd(a,p)=1(a,p互质),那么 a^(p-1)≡1(mod p). 由题可知,1e9+7是个质数(许多结果很大的题都喜欢对1e9+7取模),2是整数,a与p互质显而易见,所以现在我们的目的就是想办法把2^n%(1e9+7)降幂为2^k%(1e9+7),令p=1e9+7,已知a^(p-1)…
转移矩阵很容易求就是|0  1|,第一项是|0| |1  1|             |1| 然后直接矩阵快速幂,要用到费马小定理 :假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p).即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1(这东西贡献了我8次wa) 对矩阵进行取余的时候余mod-1,因为矩阵求出来是要当作幂的,就是a^b%p=a^(b%(p-1))%p #include<map> #includ…
费马小定理 最近在上计算机安全学选修课.. 读老师博客..现在当是写阅读笔记吧. 这里贴出老师的简书建议先看看链接先..毕竟我这些东西只是搞笑一下的.. 遵循一下这个原则… 观察 找规律 求证 首先是一段python代码,其实下面的才能直接copy后直接跑(我没学过) # n是某个正整数 n = 11; for i in range(1, n): # i循环从1到n-1 for j in range(1, n): # j循环从1到n-1 print ((i * j) % n),# 输出 (i*j…
http://www.lydsy.com/JudgeOnline/problem.php?id=3398 以下牡牛为a,牝牛为b. 学完排列计数后试着来写这题,“至少”一词可以给我们提示,我们可以枚举a为x头(x>1),然后算出对应的排列累计起来. 对于x头a,首先我们先缩掉必要的k头牛(x-1)*k,然后这时可以特判可以先结束(因为单调的),然后在缩好后的x个点和n-x-(x-1)*k个点进行多重排列就行了. 只是遇到一个问题,多重排列有个除法,又要取模的QAQ,即(a/b)%m,怎么做呢..…
M斐波那契数列 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 43   Accepted Submission(s) : 28 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[…
Invoker Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 122768/62768K (Java/Other) Total Submission(s) : 1   Accepted Submission(s) : 0 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description On of Vance's favourite hero i…
题意很简单啦,求S(n,m)的值 通过打表我们可以知道 S(n + 1, m) = S(n, m) * 2 - C(n, m); S(n - 1, m) = (S(n, m) + C(n - 1, m)) / 2; 首先我们考虑杨辉三角和二项式定理,但是看了看数据情况,貌似时间不允许呢 这个时候就要祭出莫队算法啦,关于莫队算法呢,更详细的理解请看:2010国家集训队<小Z的袜子>命题报告 莫队算法是一种用于解决可离线的,求区间[L,R]问题的算法 这个题当然就可以离线去求啦,莫队算法在解决离线…
题意:给你n个珠子可以染成k种颜色,旋转后相同的视为一种,问共有几种情况 思路:开始按照一般的排列组合做发现情况太多且要太多运算,查了下发现此题是组合中Polya定理模板题- 学的浅只能大致一说公式Sigma(k^gcd(i-1,n))/n求和数量取决于置换群数量,由于这个成环共有n个置换群,而GCD是求当前置换群的等价置换的数量. 注意由于最后要除n,如果直接取模会出现问题.通过费马小定理求得乘法逆元为pow(n,p-2)%p; 其中p为质数. #include <stdio.h> #inc…
首先假设输入的是n,m 我们就是要求m^(Σ(c(n,i) i|n)) mod p 那么根据费马小定理,上式等于 m^(Σ(c(n,i) i|n) mod  (p-1)) mod p 那么问题的关键就是求 Σ(c(n,i) i|n) mod  (p-1)了 那么如果P是素数的话,我们可以用lucas定理来快速求出来组合数,这道题的p-1是 非素数,那么我们分解质因数pi,假设c(n,i) i|n为X,那我们求出来X mod pi=ai,这个是 符合lucas定理的,那么我们可以得到质因子数个式子…
Invoker Problem Description On of Vance's favourite hero is Invoker, Kael. As many people knows Kael can control the elements and combine them to invoke a powerful skill. Vance like Kael very much so he changes the map to make Kael more powerful.  In…
w 整数的质数次方和自身的差是是质数的倍数 费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1)≡1(mod p).即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1.该定理是1636年皮埃尔·德·费马发现的.中文名 费马小定理外文名 Fermat Theory提出者 皮埃尔·德·费马提出时间 1636年…
M斐波那契数列 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗?   Input 输入包含多组测试数据: 每组数据占一行,包含3个整数a…
组合数学推推推最后,推得要求C(n+m,m)%p 其中n,m小于10^9,p小于1^5 用Lucas定理求(Lucas定理求nm较大时的组合数) 因为p数据较小可以直接阶乘打表求逆元 求逆元时,由费马小定理知道p为素数时,a^p-1=1modp可以写成a*a^p-2=1modp 所以a的逆元就是a^p-2, 可以求组合数C(n,m)%p中除法取模,将其转化为乘法取模 即    n!/(m!*(n-m)!)=n!*(m!*(n-m)!)^p-2 求C(n+m,m). n,m<=1000,二维数组递…
C. Beautiful Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vitaly is a very weird man. He's got two favorite digits a and b. Vitaly calls a positive integer good, if the decimal…
题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7). 当中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                         (全题文末) 知识点: 整数n有种和分解方法. 费马小定理:p是质数,若p不能整除a.则 a^(p-1) ≡1(mod p). 可利用费马小定理降素数幂. 当m为素数,(m必须是素数才干用费马小定理) a=2时.(a=2仅仅是题中条件,a能够为其它值) mod m =   *      //…
链接:传送门 题意:求 N 的拆分数 思路: 吐嘈:求一个数 N 的拆分方案数,但是这个拆分方案十分 cd ,例如:4 = 4 , 4 = 1 + 3 , 4 = 3 + 1 , 4 = 2 + 2 , 4 = 1 + 1 + 2 , 4 = 1 + 2 + 1 , 4 = 2 + 1 + 1 , 4 = 1 + 1 + 1 + 1,共 8 种,你没有看错,这跟普通概念上的拆分数有很大的不同,拆分数不考虑顺序,即 4 = 1 + 3 与 4 = 3 + 1 是相同的,及其坑爹,所以可以发现 N…
2128: 素数检测 时间限制: 1 Sec  内存限制: 128 MB提交: 84  解决: 32[提交] [状态] [讨论版] [命题人:admin] 题目描述 在算法竞赛中你会遇到各种各样的有关素数的问题,今天你来解决一个最基础的问题:如何判定一个素数.对于给定的正整数p,若p非素数,输出-1若p是素数 输出 :{sigma(a^(p-1) % p) ,其中a的下界为1,上界为p-1}即: 输入 多实例测试,每组数据包含一个正整数p(p < 10^16).  输出 根据情况输出一个正整数,…
费马小定理(Fermat Theory) 是数论中的一个重要定理,其内容为: 假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p).即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1. a^(p-1)%p=1 (其中%为取模操作,且a<p,p为质数) 费马小定理是初等数论四大定理(威尔逊定理,欧拉定理(数论中的欧拉定理),中国剩余定理(又称孙子定理)之一,在初等数论中有着非常广泛和重要的应用.实际上,它是欧拉定理的…