hdu 4704 Sum 【费马小定理】

题意:将N拆分成1-n个数,问有多少种组成方法。
例如:N=4,将N拆分成1个数,结果就是4;将N拆分成2个数,结果就是3(即:1+3,2+2,3+1)……1+3和3+1这个算两个,则这个就是组合数问题。
根据隔板定理,把N分成一份的分法数为C(1,n-1),
把N分成两份的分法数为C(2,n-1),
把N分成三份的分法数为C(3,n-1),.... ,
把N分成N份的分法数为C(n-1,n-1)。
即我们要求的结果为: 2^(n-1)% mod 但是 [ 1<=n<1e5, mod=1e9+7 ]
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const LL mod = 1e9+7;
LL pow(LL a,LL b)
{
    LL res = 1,base = a;
    while(b!=0){
        if(b&1) res = res*base %mod;
        base = base * base%mod;
        b>>=1;
    }
    return res;
}
int main()
{
    LL num=0,ans;
    string str;
    while(cin>>str){
            num = 0;
        for(LL i=0;i<str.size();i++){
            num=(num*10 + str[i]-'0') % (mod-1);
        }
        ans = pow(2,num-1);
        cout<<ans%mod<<endl;
        str.clear();
    }
    return 0;
}
hdu 4704 Sum 【费马小定理】的更多相关文章
- hdu 4704 Sum   费马小定理
		题目链接 求2^n%mod的值, n<=10^100000. 费马小定理 如果a, p 互质, 那么a^(p-1) = 1(mod p) 然后可以推出来a^k % p = a^(k%(p-1) ... 
- HDU - 6440(费马小定理)
		链接:HDU - 6440 题意:重新定义加法和乘法,使得 (m+n)^p = m^p + n^p 成立,p是素数.,且satisfied that there exists an integer q ... 
- 数论 --- 费马小定理 + 快速幂 HDU 4704 Sum
		Sum Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4704 Mean: 给定一个大整数N,求1到N中每个数的因式分解个数的 ... 
- HDU 4704 Sum(隔板原理+组合数求和公式+费马小定理+快速幂)
		题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=4704 Problem Description Sample Input 2 Sample Outp ... 
- hdu 4704 Sum(组合,费马小定理,快速幂)
		题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的, ... 
- hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)
		题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3. ... 
- HDU 4704 Sum (隔板原理 + 费马小定理)
		Sum Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/131072K (Java/Other) Total Submiss ... 
- hdu 4704 Sum (整数和分解+高速幂+费马小定理降幂)
		题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7). 当中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3. ... 
- HDU 4704 Sum( 费马小定理 + 快速幂 )
		链接:传送门 题意:求 N 的拆分数 思路: 吐嘈:求一个数 N 的拆分方案数,但是这个拆分方案十分 cd ,例如:4 = 4 , 4 = 1 + 3 , 4 = 3 + 1 , 4 = 2 + 2 ... 
- hdu 4704 sum(费马小定理+快速幂)
		题意: 这题意看了很久.. s(k)表示的是把n分成k个正整数的和,有多少种分法. 例如: n=4时, s(1)=1 4 s(2)=3 1,3 3,1 2,2 s ... 
随机推荐
- 函数调用的四种方式  和  相关的 --- this指向
			this:表示被调用函数的上下文对象. arguments:表示函数调用过程中传递的所有参数. 这两个参数都是隐式的函数参数.会静默传递给函数,并且和函数体内显式声明的参数一样可正常访问. argum ... 
- 789A Anastasia and pebbles
			A. Anastasia and pebbles time limit per test 1 second memory limit per test 256 megabytes input stan ... 
- iOS.Operation-on-ZipFile
			Operation on ZipFile Reference 在Mac OS X和iOS中操作.zip文件(例如创建zip文件, 从zip文件中抽取数据): 1. http://stackoverfl ... 
- 201621123008 《Java程序设计》第12周学习总结
			1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车. 2.1 简述如何 ... 
- 杭电1518 Square(构成正方形) 搜索
			HDOJ1518 Square Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ... 
- kafka的advertised.host.name参数 外网访问配置
			kafka的server.properties文件 ```host.name```开始只绑定在了内部IP上,对外网卡无法访问. 把值设置为空的话会kafka监听端口在所有的网卡上绑定.但是在外网访问时 ... 
- NC 5系自定义显示公式
			1.继承NcInnerFunction(nc.vo.pub.formulaset.function.NcInnerFunction) 在方法中引用父类方法function,并在里面写方法 @Overr ... 
- Python Numpy中transpose()函数的使用
			在Numpy对矩阵的转置中,我们可以用transpose()函数来处理. 这个函数的运行是非常反常理的,可能会令人陷入思维误区. 假设有这样那个一个三维数组(2*4*2): array ([[[ 0, ... 
- java链表实现
			import java.util.Scanner; class DATA2 { String key; // 结点的关键字 String name; int age; } class CLType / ... 
- 使用Python完成表格自动输入
			看了看<Python编程快速上手>,写了个小脚本完成12306登录数据的自动输入.如下: 1 import webbrowser 2 import pyautogui 3 import t ... 
