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.

好难理解的题意。

S(1)是代表把数字N分解为1个数,S(2)代表把N分解为2个数,S(3)代表把N分解为3个数。

其和都不等于N。

最后问把S(1) + S(2) + .. S(N)加起来的和有多少个?

就是个计数的问题。

最后得到公式这种和有2^(N-1)个。

最后问题转化为求大数2^(N-1) % 1E9 + 7的一个高幂次数求余问题。

參考了下这个博客:http://blog.csdn.net/xingyeyongheng/article/details/10910543

数学思维好抽象的。

const int SIZE = 100001;
const int MOD = int(1E9 + 7); char nums[SIZE]; __int64 Fermat(char *n, int mod)
{
__int64 ans = 0;
for (int i = 0; n[i]; i++)
{
ans = (ans * 10L + n[i] - '0') % mod;
}
return ans;
} __int64 fastPow(__int64 base, __int64 p)
{
p = (p + MOD) % MOD; __int64 ans = 1;
while (p)
{
if (p & 1) ans = ans * base % MOD;
base = base * base % MOD;
p >>= 1;
}
return ans;
} int main()
{
while(gets(nums) != NULL)//scanf("%s", nums) != EOF)
{
__int64 n = Fermat(nums, MOD-1) - 1;
printf("%I64d\n",fastPow(2, n));
}
return 0;
}

最新文章

  1. 1、利用蓝牙定位及姿态识别实现一个智能篮球场套件(一)——用重写CC2541透传模块做成智能手环
  2. BZOJ 2460 [BeiJing2011]元素 ——线性基
  3. web前端基础篇⑨
  4. eclipse中添加python开发环境
  5. Excel 日期转换
  6. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]
  7. bash广播
  8. Linux修改系统以及pip更新源
  9. UVa 1262 (第k字典序) Password
  10. ganymed-ssh2使用
  11. CallContext和多线程
  12. 构建一个真实的应用电子商务SportsStore(十一)
  13. iOS 模式详解—「runtime面试、工作」看我就 🐒 了 ^_^.
  14. 201521123100 《java程序设计》第12周学习总结
  15. linux shell数组
  16. zombodb 几个方便的_cat api
  17. thinkphp模型实例化
  18. mysql远程登录出错的解决方法
  19. STL源码剖析之空间配置器
  20. Linux如何关机与关机命令祥解

热门文章

  1. C++操作符重载总结operator(小结 更新ing)
  2. CSS隐藏overflow默认滚动条同时保留滚动效果
  3. 【henuacm2016级暑期训练-动态规划专题 C】Little Girl and Maximum XOR
  4. ACdream 1157 Segments
  5. LA 6437 Power Plant (prim最小生成树)
  6. html表格设计
  7. iOS (封装)一句话调用系统的alertView和alertController
  8. hdoj--2094--产生冠军(集合函数)
  9. (七)日志采集工具sleuth--分布式链路跟踪(zipkin)
  10. 27.boost多线程