题目的意思就是,从1到k,按照波浪顺序排序(小大小 大小大),共有多少种排列方法。
比如1-4 共有1324, 2143, 3142, 2314, 3412, 4231, 4132, 2413, 3241, 1423十种方法。
其中k最大值为20 很容易想到打表直接0MS AC,但是如果使用DFS暴力的话,20!复杂度可能跑半辈子也跑不完,因此暴力行不通,怎么办呢?DP解决

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[21][2],c[21][21];
int main()
{dp[1][0]=dp[1][1]=1;dp[0][1]=dp[0][0]=1;for(int i=1;i<=20;i++){c[i][0]=c[i][i]=1;for(int j=1;j<i;j++){c[i][j]=c[i-1][j]+c[i-1][j-1];}}        for(int i=2;i<=20;i++){ll tmp=0;for(int j=0;j<i;j++){tmp+=dp[j][0]*dp[i-1-j][1]*c[i-1][j];}dp[i][0]=dp[i][1]=tmp/2;}int n;scanf("%d",&n);while(n--){int id,num;scanf("%d%d",&id,&num);if(num==1)printf("%d 1\n",id);elseprintf("%d %lld\n",id,dp[num][0]<<1);}
}

首先预处理出所有的情况,可以打表但是不打表也行。
Cij是排列组合数。
首先进行思路上的分析,如果我们要得到长度为 i的种类个数, 我们可以想象为 k这个数 插入到1~k-1中,如果k在第j+1个位置 那么 前面就有 j个数 又因为 k是最大的 所以前面排列一定是 小大小 (如果是 大小大 连接上 k以后 就是大小大大 不满足题目要求。)
所以前面应该是 dp[j][0] 但此时注意, 这里的数据是可以在1~i-1中任取的, 因此乘以C[i-1][j]从前k-1个数里任取j个数。
最后再乘上dp[i-1-j][1]也就是剩下的数按照 大小大排列有多少种情况。
同时,这道题观察发现 dp[i][0]和dp[i][1]其实完全相等,因此第二维并没有必要,可以退化成一维。

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll dp[21],c[21][21];
int main()
{dp[1]=1;dp[0]=1;for(int i=1;i<=20;i++){c[i][0]=c[i][i]=1;for(int j=1;j<i;j++){c[i][j]=c[i-1][j]+c[i-1][j-1];}}      for(int i=2;i<=20;i++){ll tmp=0;for(int j=0;j<i;j++){tmp+=dp[j]*dp[i-1-j]*c[i-1][j];}dp[i]=tmp/2;}int n;scanf("%d",&n);while(n--){int id,num;scanf("%d%d",&id,&num);if(num==1)printf("%d 1\n",id);elseprintf("%d %lld\n",id,dp[num]<<1);}
}

HDU4489 动归解决相关推荐

  1. html 引入gif 不会动,GIF图片在电脑上不会动的解决办法

    1.gif 动画为什么有时候会动,有时候不会动? 我用 fireworks 作了一个gif 动画,然后嵌入网页中,在我的电脑打开网页看的时候,该图片是可以变化的,可是到老总的电脑看的时候就不能变了,请 ...

  2. appcan slider轮播图和页面弹动冲突解决

    在安卓下,用第三轮播图,卡成球一样.经常有问题,但IOS下很正常,官方自带的slider不加页面弹动很OK.但不可能app中不用弹动吧. 修改方法: 在DIV中直接加滑动禁止弹动代码如下 <di ...

  3. 迁移系统后黑屏 只有鼠标可以动【解决方法】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 出现这个问题的原因 一.首先要想尽办法启动[注册表编辑器],这里提供两个方法给大家参考,我都成功了 1.从PE系统启动 2. ...

  4. 中点坐标公式 矩形_压轴题必备|中考数学“动点坐标”问题,这个万能解法人人都能学会!...

    中考数学压轴题考什么? "存在性问题"一定榜上有名.而再深入研究,你就会发现:这些试题中,有近四分之一都是在考查"平行四边形的存在性问题(包括矩形和菱形)". ...

  5. 光学定位与追踪技术_贺岁片《疯狂外星人》中徐峥出演外星人?幕后动捕技术了解一下...

    在2019年央视春晚上,高科技"技能加满",5G+4K+VR齐上阵,赚足眼球.当然,主角还得属5G.不过,本篇文章的主角不是5G,但也和春晚挂钩. 不知大家是否有注意到,在2019 ...

  6. 关于SQL server 2000 在安装过程中遇到文件挂起的解决办法

    两种方法: 1.关于SQL server 2000 在安装过程中遇到文件挂起的解决办法: 在Ghost 版 windows xp 中安装 SQL server 2000 时经常会遇到安装程序运行到第二 ...

  7. 安装SQL2000系统提示文件挂起的解决办法

    两种方法: 1.关于SQL server 2000 在安装过程中遇到文件挂起的解决办法: 在Ghost 版 windows xp 中安装 SQL server 2000 时经常会遇到安装程序运行到第二 ...

  8. 全球的weex资源都在这里

    WeeX FAQ QQ: Weex大前端 516682889 Weexbox: 943913583 WeeX相关资源 weex官方资源 weex官网 Weex Market 已挂 : 一个提供 Wee ...

  9. 【树型DP】BZOJ1564 二叉查找树(noi2009)

    标签: 二叉查找树 [题目描述] 已知一棵特殊的二叉查找树.根据定义,该二叉查找树中每个结点的数据值都比它左儿子结点的数据值大,而比它右儿子结点的数据值小. 另一方面,这棵查找树中每个结点都有一个权值 ...

最新文章

  1. swift中使用core data
  2. black.lst 丢失或被破坏,怎么解决
  3. 自定义动画属性java_创建酷炫动画效果的10个JavaScript库
  4. http代理的脚本http_proxy.py
  5. 哪里有2003系统服务器,服务器2003系统
  6. USACO Section 1.2 Greedy Gift Givers (简单查找)
  7. System V消息队列
  8. 电脑画画软件_绘画软件分享,还不过来看!
  9. apache开源项目--thrift
  10. ML/DL-复习笔记【一】- 数学基础(线性代数、概率论、数值分析)
  11. java自动扫描不好使_Spring 自动扫描 不支持jar包 component-scan
  12. c3p0 mysql 连接池配置文件_使用XML配置c3p0数据库连接池
  13. SVN创建分支及合并
  14. 把计算机怎么连接手机的网络助手在哪里,怎么将手机网络通过USB共享给电脑
  15. 微信小程序上传图片解决方案+oss+后端代码
  16. 传说中的世界500强面试题-数学能力(2)
  17. 家庭WIFI排障思路
  18. windows无法完成安装若要在此计算机,windows无法完成安装.若要在此
  19. TikTok三大流行趋势 钛动带你看懂TikTok
  20. zcash官方介绍 zk-SNARK circuit-QAP转化

热门文章

  1. openstack学习笔记六 多节点部署之keystone
  2. 2018浙大408考研经验(划掉)个人口胡 普通一本+二战(伪)+小跨吧大概
  3. 解决Destroying ProtocolHandler [“ajp-apr-8009“]
  4. 组合计数——车的放置(逆元)+数三角形+序列统计(lucas定理)
  5. 由于word打字卡顿、延迟,怎么重新安装office
  6. 解读txt文件中的乱码
  7. 2020年软件测试工程师需要具备什么技能--需要学哪些
  8. sRGB Color Space
  9. Hrbust 2294 修建传送门【思维】
  10. 8.认识robots.txt到爬取信息