原题见:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=106940#problem/A

题目要求:按题意找出对应数字出现的次数。

4=1+1+1+1
  4=1+1+2
  4=1+2+1
  4=2+1+1
  4=1+3
  4=2+2
  4=3+1
  4=4               例如此例:1出现的次数为12。

代码如下:

 1 #include <stdio.h>
 2
 3 typedef long long ll;
 4 ll mod=1e9+7;
 5 //#include <stdlib.h>
 6 ll qpow(ll n,ll m)
 7 {
 8     ll ans = 1;
 9     while(m>0)
10     {
11         if(m&1) ans = ans * n % mod;
12         n = n * n % mod;
13         m = m >> 1;
14     }
15     return ans;
16 }
17 /*ll fun(ll n,ll k)
18 {
19     if(n==k)  return 1;
20     else if(n==k+1) return 2;
21     else if(n-2 == k) return 5;
22     //else if(n-3 == k)return 12;
23     else return 2*fun(n-1,k)+qpow(2,n-3);
24 }*/
25 int main()
26 {
27     int t;
28     ll ans,n,k;
29     scanf("%d",&t);
30     while(t--)
31     {
32         scanf("%lld%lld",&n,&k);
33         if(k>n) {
34             printf("0\n");
35             continue;
36         }
37         else
38         {
39             //printf("%lld\n",fun(n,k));
40             ans=2*qpow(2,n-k-1)%mod+(n-k-1)*qpow(2,n-k-2)%mod;
41             printf("%lld\n",ans%mod);
42         }
43     }
44
45
46     return 0;
47 }

找规律即可,例如将5的实例也写出后数数=,=会发现

n=%d 1     2    3    4    5

k=1    1     2    5   12  28

k=2    0     1    2    5   12

k=3    0     0    1    2    5

k=4    0     0    0    1    2

k=5    0     0    0    0    1

找到规律吧少年~~~~f(n)=2*f(n-1)+pow(2,n-3)或者ans=2*pow(2,n-k-1)%mod+(n-k-1)*pow(2,n-k-2)%mod

也就是说注释的部分也是对的,那为什么会变成注释呢?  =。=因为递归层数太多,导致本宝的程序MLT……!!空间超限。。。生平第一次啊。。。。然后就沦为注释。。。

嗯,就这样吧!

转载于:https://www.cnblogs.com/ivangin/p/5201655.html

HDU 4602 - Partition相关推荐

  1. hdu 4602 Partition

    题意:将一个整数 n 进行无序拆分,一共有2^(n-1)种:输入一个整数 k ,问 k 在所有拆分中出现的次数. 分析:a[n][k]=a[i][k]+2^(n-k-1);(k<=i<n) ...

  2. HDU 4602 Partition 规律题

    貌似是个比较简单的规律题. 解题报告中说的很详细 我们可以特判出n <= k的情况.  对于1 <=  k < n,我们可以等效为 n个点排成一列,并取出其中的连续k个点.下面分两种 ...

  3. 【HDOJ】4602 Partition

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...

  4. HDU 4651 Partition(整数拆分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4651 题意:给出n.求其整数拆分的方案数. i64 f[N]; void init() {     f ...

  5. ie11 ajax 加载提示,解决在IE11浏览器下,JQuery的AJAX方法不响应问题

    在项目的时候一直都是在使用谷歌浏览器在调试,后来在现场部署到服务器上的时候,客户使用的是IE浏览器,版本是11 在测试的过程中,出现几个问题,虽然是几个问题,但是问题的原因就是AJAX第一次响应,第二 ...

  6. 【HDOJ】4602 Partition_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...

  7. windows10 安装linux,windows 10安装linux(ubuntu)子系统

    windows10安装ubuntu子系统系统 之前一直在虚拟机中使用linux系统,但是不是很方便,后来发现windows下也有了linux系统.感觉还不错 1. 打开windows应用市场micro ...

  8. D - Triangle Partition HDU - 6300 sort(cmp)

    D - Triangle Partition HDU - 6300 题解 由于三点不共线,且三角形不相交,则对坐标排序,输出 #include<bits/stdc++.h> using n ...

  9. HDU 5646 DZY Loves Partition

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5646 bc:http://bestcoder.hdu.edu.cn/contests/con ...

最新文章

  1. 13、SpringBoot-CRUD员工修改操作/删除
  2. 大型网站应用中MySQL的架构演变史
  3. ITK:转换文件格式
  4. 进程隐藏与进程保护(SSDT Hook 实现)(二)
  5. linux mysql数据库备份并删除前一分钟的数据
  6. Linux里的21究竟是什么
  7. Linux下的防火墙管理(包含图形和命令、伪装和转发)
  8. 学Python Web开发框架到什么程度可以找到开发的工作?
  9. 系统设计与任务分配(团队作业)
  10. JAVA 7 正式版发布 新特性一览表
  11. linux对硬盘进行分区吗,linux对4T硬盘进行分区
  12. bzoj 1207: [HNOI2004]打鼹鼠【dp】
  13. H5游戏开发:FC小蜜蜂
  14. Mac上修改hosts文件无效的解决方案
  15. 小米路由器3开启千兆_使用评测 篇三:家庭网络进入千兆时代—小米路由器4开箱及评测...
  16. 申论文章观点的打造技巧
  17. Emulex:融合是一切发展的基础
  18. 教育报十二篇连载——美国中小学信息技术教育走笔
  19. CMake多版本共存
  20. mysql 临时表 会话级_会话级的临时表和事务级的临时表

热门文章

  1. Android安全开发之Provider组件安全
  2. Android系统启动-zygote篇
  3. 利用xposed绕过安卓SSL证书的强校验
  4. 时间日期类JAVA包含地区属性_Java常用类 | 时间和日期类
  5. db2 删除索引_MySQL 选错索引的原因是什么?
  6. 基于相似学习的目标跟踪方法
  7. 均分纸牌pascal程序
  8. Luogu P4708 画画 (Burnside引理、组合计数)
  9. python自动化_Python报表自动化
  10. redhat安装wine教程_可能是最漂亮的国产Linux,U盘安装DeepinLinux 深度操作系统