hdu 4704 Sum (组合+欧拉定理)
来源:互联网 发布:蓝月翅膀升阶数据 编辑:程序博客网 时间:2024/06/14 06:14
http://acm.hdu.edu.cn/showproblem.php?pid=4704
大意:给定N,设S(k)是由k个数字相加得到N的方案数,求解
分析:本题中两个数字的排列,如1、2 应该有2种——1、2; 2、1(一开始以为它们相同,算作一种,怎么也算不出来)
如此以来,容易分析,将数字n看作1+1+1……+1(n个)
那么 (组合思维,隔板看待)
于是,答案就是
原问题的答案就是
我们发现,mod是一个素数,所以,借助欧拉定理 (或者费马小定理),得到
#include <cstdio>#include <cstring>#include <iostream>using namespace std;typedef long long LL;const int mod=1e9+7,N=1e5+10;char str[N];LL power(LL a,LL p){ LL ans=1; while(p){ if(p&1) ans=ans*a%mod; a=a*a%mod; p>>=1; } return ans;}int main(){ while(~scanf("%s",str)){ int len=strlen(str); LL ans=0; for(int i=0;i<len;i++){ ans=(ans*10+str[i]-'0')%(mod-1); } ans=(ans-1+mod-1)%(mod-1); printf("%lld\n",power(2LL,ans)); } return 0;}
0 0
- hdu 4704 Sum (组合+欧拉定理)
- HDOJ 4704 Sum 规律 欧拉定理
- HDU 4704 Sum(费马小定理,组合数学,快速幂)
- hdu 4135 Co-prime (组合数学:容斥定理+欧拉函数)
- hdu - 4704 - Sum(费马小定理)
- HDU 4704 Sum (费马小定理)
- hdu-4704 sum(费马小定理)
- hdu 4704 Sum(费马小定理)
- HDU 4704 Sum(隔板+费马小定理)
- Sum nyoj 欧拉定理简单运用(数论入门)
- HDU 1395(欧拉定理)
- hdu 1418 欧拉定理
- hdu 4704 sum 费马小定理
- HDU 4704 Sum 费马小定理
- HDU 1286 找新朋友 (欧拉定理)
- HDU 5895 Mathematician QSC(欧拉定理推广)
- HDU-1695 GCD(容斥定理+欧拉函数)
- hdu 找新朋友 (欧拉定理)
- 【Robotium学习笔记】hierarchyviewer使用篇(2016.3.22)
- HDOJ 5646 DZY Loves Partition(数学)
- Android中进程(Process)和线程(Thread)
- Codeforce 633D multiset
- 年龄几何
- hdu 4704 Sum (组合+欧拉定理)
- 为mysql数据库建立索引
- Android Studio Application Test详解
- 验证码制作php
- android线程消息传递机制——Looper,Handler,Message
- 第四周【项目1-求最大公约数】
- 多态性---构造函数和析构函数中调用虚函数
- Unity3D -- 获取不重复的随机数
- iOS runtime学习之Method Swizzling(方法调配技术)