【题目】http://acm.hdu.edu.cn/showproblem.php?pid=4602

【报告】

直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了。。)

Problem C. Partition

我们可以特判出n<= k的情况。

对于1<= k,我们可以等效为n个点排成一列,并取出其中的连续k个点。下面分两种情况考虑:

第一种情况,被选出的不包含端点,那么有(n–k−1)种情况完成上述操作,剩下未被圈的点之间还有(n–k−2)个位置,可以在每个位置断开,所以共2^(n−k−2) ∗(n−k−1)种方法。

第二种情况,即被选出的包含端点,那么有2种情况,并且剩余共(n–k−1)个位置,所以共2∗2^(n–k−1)种方法。

总计2∗2^(n–k−1) +2^(n–k−2) ∗(n–k−1)=(n–k+3)* 2^(n–k−2)。

注意一下本题需要用long long,还要特殊处理n

【程序】

// Task: HDOJ 4602 Partition
// Designer: Rsky 2013/08/11
#include
#include
#include
#include
using namespace std;
const long long MOD = 1000000007ll;
long long solve(long long n,long long k)
{
    if(n
    if(n==k) return 1;
    long long ans=n-k+3;
    long long tmp=2;
    k=n-k-2;
    if(k==-1) return ans/2;
    while(k){
        if(k%2){
            ans=(ans*tmp)%MOD;
        }
        tmp=(tmp*tmp)%MOD;
        k/=2;
    }
    return ans;
}
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        long long n,k;
        cin >> n >> k;
        cout << solve(n,k) << endl;
     //   scanf("%lld%lld",&n,&k);
     //   printf("%lld\n",solve(n,k));
    }
    return 0;
}

转载于:https://www.cnblogs.com/klarkxy/p/10017147.html

【HDOJ】4602 Partition相关推荐

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

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

  2. 【leetcode】86. Partition List

    题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...

  3. 【HDOJ】1008 Elevator_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=1008 [报告] 这是我在HDOJ里看到的最水的题目,至少目前为止. 题目里已经讲得很清楚了,模拟就能过 ...

  4. 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...

  5. 【HDOJ】1003 Max Sum_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1003 [报告] 既然是子区间加和问题,可以用减法来处理.比如求[5..10]的和,可以直接用[1..10 ...

  6. 【HDOJ】4768 Flyer_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=4768 [报告] 题目中已经说了,保证最多出现一个奇数,所以可以用异或的想法.把所有的数异或起来,如果最后 ...

  7. 【HDOJ】4699 Editor_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=4699 [报告] 模拟题吧,本身不是很难. 最初的想法是用Splay tree写,然后疯掉了.苏牛说2B ...

  8. 【HDOJ】4704 Sum_天涯浪子_新浪博客

    [题目] http://acm.hdu.edu.cn/showproblem.php?pid=4704 [报告] S(K)显然就是N的K正整数划分数.所以SUM{S(K),1<=K<=N} ...

  9. 【HDOJ】1015 Safecracker_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1015 [报告] 题目写的很长,忽略一系列废话,题意就是求一个方程v - w^2 + x^3 - y^4 ...

最新文章

  1. 用P3P header解决IE下iframe跨域访问时候session丢失的问题
  2. python介绍和用途-Python基础介绍(一)
  3. 使用NSCondition实现多线程同步
  4. mysql 进阶到高级_mysql的高级进阶(一)
  5. python画各种统计图的特点_Python 分词并画出词频统计图 | 睿鑫网络
  6. ftp服务器 vsftpd搭建和配置以及虚拟用户的设置
  7. 【 2013华为杯编程大赛成都第三组前两题试题及答案】
  8. matlab求傅里叶级数展开式_连续时间的傅里叶级数
  9. php对象转换为字符串,php – 类的对象..无法转换为字符串
  10. 使用innotop监测mysql
  11. 什么是Web Service
  12. Oracle命令--表空间管理
  13. python raw input用法_如何在 python raw_input 中使用 tab 键补全?
  14. ijkplayer知识点(1)- ijkplayer 调用流程总览思维导图
  15. 在实战中学习项目管理 --专栏《项目管理实战20讲》学习总结
  16. 事件管理和问题管理,配置管理和变更管理的区别
  17. python编写鸡兔同笼程序_Python解决鸡兔同笼问题的方法
  18. 网络安全行业全领域白皮书
  19. centos7密码破解
  20. 数据安全建设中合规管理措施

热门文章

  1. java参数校验:ValidatorUtils校验框架工具类的使用
  2. 1t硬盘怎么分区最好_win7系统硬盘怎么分区 win7系统硬盘分区步骤【介绍】
  3. java中main缺少主体_缺少方法主体,或声明了摘要
  4. css3 filter url,CSS3 filter(滤镜) 属性
  5. linux中常用名词解释,科学网—linux中常见名词解释 - 武海丹的博文
  6. Spring Boot freemarker导出word下载
  7. python 匹配字符串map lambda函数_Python map amp; reduce 以及lambda匿名函数 - jvisualvm - ITeye博客...
  8. 有季节效应的非平稳序列分析之因素分解
  9. python实例 81,82
  10. python实例 77,78