题目分析 : (8 4) 可以由(7 4),(6,4),( 4,4) 基础上转化

意味着一个新加入的元素可以按照它加入的方式分类,从而实现动态规划

核心:加入方式 新加入的元素构成转换环的元素个数(n的约数)

eg: (8,4) 新加入元素自己单独一个环 (7,4)

(6,4)新加入元素自己构成二元环 (6,4)

(4,4)新加入元素自己构成四元环 (4,4)

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4. const LL mod=1e9+;
  5. const int N=;
  6. LL f[N],inv_f[N];// 阶乘和阶乘的逆元
  7. LL dp[N];
  8. LL p[N]; int cnt;
  9. LL q_pow (LL x,LL k) {// 快速幂求逆元
  10. LL ans=;
  11. while (k) {
  12. if (k&) ans=ans*x%mod;
  13. x=x*x%mod;
  14. k=k>>;
  15. }
  16. return ans;
  17. }
  18. LL c (int n,int m) {// 组合数c(n,m)
  19. if (m>n) return ;
  20. if (m>n-m) m=n-m;
  21. LL x=inv_f[n-m]*inv_f[m]%mod;
  22. return x*f[n]%mod;
  23. }
  24. int n,k;
  25. int main ()
  26. {
  27. f[]=; dp[]=dp[]=;
  28. for (int i=;i<N;i++) f[i]=i*f[i-]%mod;
  29. inv_f[N-]=q_pow (f[N-],mod-);
  30. for (int i=N-;i>=;i--) inv_f[i]=inv_f[i+]*(i+)%mod;
  31. int T; scanf ("%d",&T);
  32. while (T--) {
  33. scanf ("%d %d",&n,&k);
  34. LL sum=; int cnt=;
  35. for (int i=;i<=k;i++)
  36. if (k%i==) {
  37. p[++cnt]=i;// 求得约数
  38. }
  39. for (int i=;i<=n;i++) {
  40. dp[i]=;
  41. for (int j=;j<=cnt;j++) {
  42. if (i-p[j]<) break;
  43. dp[i]=(dp[i]+c(i-,p[j]-)*f[p[j]-]%mod*dp[i-p[j]]%mod)%mod;
  44. // c[i-1][p[j]-1] (选取p[j]-1个元素和新加入的元素构成p[j]元环)
  45. // f[p[j]-1] p[j]个元素构成j元环的个数 (p[j]-1)!
  46. // dp[i-p[j]] 剩余的( i-p[j])元素的组合个数
  47. }
  48. }
  49. printf("%lld\n",dp[n]);
  50. }
  51. return ;
  52. }

xdoj 1067组合数学+动态规划 (一个题断断续续想了半年 233)的更多相关文章

  1. nyist oj 79 拦截导弹 (动态规划基础题)

    拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 某国为了防御敌国的导弹突击.发展中一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以 ...

  2. nyist oj 311 全然背包 (动态规划经典题)

    全然背包 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 直接说题意,全然背包定义有N种物品和一个容量为V的背包.每种物品都有无限件可用.第i种物品的体积是c,价值是 ...

  3. 洛谷P1028 数的计算 题解 动态规划入门题

    题目链接:https://www.luogu.com.cn/problem/P1028 题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数 \(n\) ): 先输入一个自然数 \(n(n \ ...

  4. 据说,每一个 iOSer 都想要一张 Swift 大会门票

    据说,每一个 iOSer 都想要一张中国首届 Swift 开发者大会的门票: 那么,福利来了-- fir.im 作为中国首届 Swift 大会的唯一钻石赞助商,有最后 2 张价值 600 多的门票(已 ...

  5. 批处理命令篇--配置免安装mysql 5.6.22, 以及1067错误的一个解决方法

    mysql 服务启动出现1067错误的一个解决方法: 当服务启动出现1067错误时,可查看“windows 事件查看器”,发现类似错误提示 Can't find messagefile 'F:\    ...

  6. Android实训案例(九)——答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程

    Android实训案例(九)--答题系统的思绪,自己设计一个题库的体验,一个思路清晰的答题软件制作过程 项目也是偷师的,决心研究一下数据库.所以写的还是很详细的,各位看官,耐着性子看完,实现结果不重要 ...

  7. [Writeup]二维码的一个题

    [Writeup]二维码的一个题 瓜皮感觉难出题眼,恶魔暴力膜法初现 看题 一个二维码,扫出来是where is the flag?(where is my mind?) 先感觉 用binwalk扫一 ...

  8. 不好意思啊,我上周到今天不到10天时间,用纯C语言写了一个小站!想拍砖的就赶紧拿出来拍啊

    花10天时间用C语言做了个小站 http://tieba.yunxunmi.com/index.html 简称: 云贴吧 不好意思啊,我上周到今天不到10天时间,用纯C语言写了一个小站!想拍砖的就赶紧 ...

  9. 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步

    在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步ctrl+alt+右 回到下一步

随机推荐

  1. 牛客网 PAT 算法历年真题 1010 : 月饼 (25)

    月饼 (25) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地 ...

  2. Struts 2 初步入门(三)

    接Struts 2初步入门(二) 若想用多个通配符设定访问: <struts> <package name="default" namespace="/ ...

  3. CentOS安装JDK-tar.gz文件

    1.下载JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. 测试 ...

  4. 数据泵导入 ORA-31626

    Oracle,10G,数据泵导入时,报错如下: 解决方案:对当前用户做如下授权 . 具体操作:grant connect,resource to user;

  5. 给msde加装企业管理器

    -=给msde加装企业管理器=- 首先,反对所谓的绿色版,运行那是 相~~~当 不稳定,自动关闭,要你有什么用?还广告飞扬!为了调试,花了我整整一天的时间.给大家节省的时间,也为了让大家少走点弯路. ...

  6. 简单选择排序(Simple Selection Sort)

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  7. oracle数据导入导出数据与编码格式不正确

     1.导入dmp文件 imp ZHCG/ZHCG@ORCL file=E:\20160902.1007.dmp full=y 2.导出数据 exp system/manager@ORCL file ...

  8. Linux 最小安装常用包

    Linux最小安装后很多常用的工具都没有,但直接通过yum install 文件名的方式可能无法找到,汇总于此,随时更新: CentOS7 1.如果要通过SecureCRT上直接上传下载文件,最简单的 ...

  9. netcore 2.0 部署 到iis

    .net Core2.0应用程序发布window服务器报错容易错过的配置. 1.应用程序发布. 2.IIS上新建网站. 3.应用程序池选择无托管代码. 4.服务器上安装DotNetCore.1.0.2 ...

  10. fftshift函数详解

    reference: https://ww2.mathworks.cn/help/matlab/ref/fftshift.html 一.实信号情况 因为实信号以fs为采样速率的信号在 fs/2处混叠, ...