HDU 4704】的更多相关文章

Sum Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4704 Description   Sample Input 2   Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases. 题意…
题目看了很久没看懂 就是给你数n,一种函数S(k),S(k)代表把数n拆成k个数的不同方案数,注意如n=3,S(2)是算2种的,最后让你求S(1~n)的和模1e9+7,n<=1e100000.那么其实一个S(k)就是把n个小球放到k-1个盒子里的种类数,求和也就是求个$2^{n-1}$. n超大,但是模数只有1e9+7,用欧拉定理就行了. /** @Date : 2017-09-12 18:41:59 * @FileName: HDU 4704 欧拉定理 降幂.cpp * @Platform:…
Sum Problem's Link:   http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的总和. analyse: N可达10^100000,只能用数学方法来做. 首先想到的是找规律.通过枚举小数据来找规律,发现其实answer=pow(2,n-1); 分析到这问题就简单了.由于n非常大,所以这里要用到费马小定理:a^n ≡ a^(n%(m-1)) * a^(m-1)≡ a^(n%(m-…
http://acm.hdu.edu.cn/showproblem.php?pid=4704 求(2^n)%mod的方法 #include <iostream> #include <cstdio> #include <cstring> #include <set> #include <vector> #include <queue> using namespace std ; //(2^n)%mod=(2^(n%(mod-1)))%m…
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description   Sample Input 2 Sample Output 2 Hint 1. For N = 2, S(1) = S(2) = 1. 2. The input file consists of multiple test cases.   题意是输入一个N,求N被分成1个数的结果+被分成2个数的结果+...+被分成N个数的结果,N很大   1.隔板原…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4704 思路:一道整数划分题目,不难推出公式:2^(n-1),根据费马小定理:(2,MOD)互质,则2^(p-1)%p=1,于是我们可以转化为:2^(n-1)%MOD=2^((n-1)%(MOD-1))%MOD,从而用快速幂求解. #include<iostream> #include<cstdio> #include<cstring> #include<algorit…
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的,哈哈. 一开始题意没看清(老毛病了),然后就以为用N对1e+9取模,因为给的数的范围为10100000 所以只能开数组模拟.错了一发.后来再看题,发现错了,S(n)代表的是将N分成n个数的合的不同种类. 那么求S(n)的方法就是高中数学老师教的隔板法,有点忘了.隔板法是这样的,如果N为5,那么将5写…
题意: 给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=…
思路:对于给定的n,s(i)即将n分解为i个数的组合数,也就是在n-1个位置插入i-1个板即C(n-1,i-1); ∑S=2^(n-1); phi(1000000007)=1000000006; 对于n>=phi,有a^n%c=a^(n%phi(c)+phi(c))%c. 代码如下: #include<cstdio> #include<cstring> #define ll __int64 #define mod 1000000007 #define phi 10000000…
题目链接 求2^n%mod的值, n<=10^100000. 费马小定理 如果a, p 互质, 那么a^(p-1) = 1(mod p)  然后可以推出来a^k % p = a^(k%(p-1))%p. #include <iostream> #include <vector> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #…