HDU4704:Sum(费马小定理 & 隔板法)
2017-07-17 20:31
197 查看
Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2767 Accepted Submission(s): 1155
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.
Source
2013 Multi-University Training Contest 10
思路:S(K)相当于把N分成K部分的种数,就是C(N-1, K-1),S(1)+...+S(N)就是2^(N-1),由于N很大不能直接快速幂,根据费马小定理a^(p-1)=1modp,将N-1分成若干个p-1+余数k,就是2^k%mod就搞定了。
# include <iostream> # include <cstdio> # include <cstring> typedef long long LL; const int maxn = 1e5+10; const LL mod = 1e9+7; char s[maxn]; LL cal() { LL ans = 0; for(int i=0; s[i]; ++i) ans = (ans*10+s[i]-'0')%(mod-1); return ans; } LL qmod(LL a, LL b) { LL ans=1, pow=a; for(;b;b>>=1) { if(b&1) ans = ans*pow%mod; pow = pow*pow%mod; } return ans; } int main() { while(~scanf("%s",s)) { LL pow = (cal()+mod-2)%(mod-1); printf("%lld\n",qmod(2,pow)); } return 0; }
相关文章推荐
- 【HDU - 4704】Sum 【隔板法+费马小定理降幂】
- poj 1845Sumdiv(唯一分解定理&&约数和公式&&二分求等比数列和&&反复平方法计算p^n幂~~~好多定理啊)
- HDU 4704 Sum(费马小定理,组合数学,快速幂)
- hdu 4704 Sum(组合,费马小定理,快速幂)
- HDOJ 题目4704 Sum(费马小定理,快速幂)
- [LeetCode]39.Combination Sum&40.Combination Sum II&216.Combination Sum III&377.Combination Sum IV
- 费马小定理
- 【容斥定理 && dfs】UESTC 1544 当咸鱼也要按照基本法
- POJ 1845-Sumdiv(快速幂取模+整数唯一分解定理+约数和公式+同余模公式)
- nefuoj Garden visiting 628 (组合数学&&Lucas定理)
- poj 1845 Sumdiv (算术基本定理求一个数因子和)
- [BZOJ4408&&BZOJ4299][FJOI2016 && Codechef]神秘数&&FRBSUM(主席树)
- [Leetcode][JAVA] Path Sum I && II
- Leetcode 3 sum && 3 sum closet&& 4 sum
- 日本野村综合研究所与SBI Sum…
- 【唯一分解定理 && 状态压缩 && 组合数学】LightOJ - 1236 Pairs Forming LCM
- Project Euler 题解 #18 & #67 Maximum path sum
- awk之行与列的count & sum命令总汇
- 【中国剩余定理 && 枚举 && 思维】UVA 11754 Code Feat
- combinationSum&&combinationSumII