题目传送门

【题目大意】

给定行数以及每一行的的人数,求方案数,要求从前往后,从左往右身高递增。

【思路分析】

这里没有必要考虑究竟是怎么排的,只要方案数就好啦,然后看到数据范围最大是5行,那么就考虑DP

设$f[a][b][c][d][e]$为第1行站了a个人,第2行站了b个人,第3行站了c个人,第4行站了d个人,第5行站了e个人的方案数

接下来考虑一下转移方程。

首先很明显的条件就是某一个位置在其左边和上面的位置都有人的情况下才可以安排人,这时这个位置的方案数就要加上安排之前的方案数

然后还要注意一下开数组不能直接开$f[31][31][31][31][31]$,那样会爆空间。因为后面一行人数肯定不大于前面一行,所以我们可以只开$f[31][\lceil31/2\rceil][\lceil31/3\rceil][\lceil31/4\rceil][\lceil31/5\rceil]$

【代码实现】

 1 #include<cstdio>
 2 #include<cstring>
 3 #define ll long long
 4 #define go(i,a,b) for(register int i=a;i<=b;i++)
 5 using namespace std;
 6 int k,n[6];
 7 ll f[31][31/2+1][31/3+1][31/4+1][31/5+1];
 8 int main(){
 9     while(1){
10         scanf("%d",&k);
11         if(k==0) return 0;
12         memset(n,0,sizeof(n));memset(f,0,sizeof(f));
13         go(i,1,k) scanf("%d",&n[i]);
14         f[0][0][0][0][0]=1;
15         go(a,0,n[1]) go(b,0,n[2]) go(c,0,n[3]) go(d,0,n[4]) go(e,0,n[5]){
16             ll as=f[a][b][c][d][e];
17             if(a<n[1]) f[a+1][b][c][d][e]+=as;
18             if(b<n[2]&&b<a) f[a][b+1][c][d][e]+=as;
19             if(c<n[3]&&c<b) f[a][b][c+1][d][e]+=as;
20             if(d<n[4]&&d<c) f[a][b][c][d+1][e]+=as;
21             if(e<n[5]&&e<d) f[a][b][c][d][e+1]+=as;
22         }
23         printf("%lld\n",f[n[1]][n[2]][n[3]][n[4]][n[5]]);
24     }
25     return 0;
26 }

代码戳这里

转载于:https://www.cnblogs.com/THWZF/p/10884921.html

Mr Youngs Picture Permutations 题解报告相关推荐

  1. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  2. CSP-2019day1题解报告

    day1题解报告 题目 T1 T2 从链想起 转为正解 T3(摘自同级大佬xez) 题目 T1传送门 T2传送门 T3传送门 T1 乍一看,这道题做过,可以用对称性做,如果他的长度过了一半,就输出1, ...

  3. 爆炸的符卡洋洋洒洒题解报告

    爆炸的符卡洋洋洒洒题解报告 标签:动态规划 题目链接 来源:牛客网 解题思路: 显而易见的背包问题 但再观察a,b的数据范围,开不了那么大的dp数组 这就启发我们去优化,由于题目要求魔力总耗的是k的倍 ...

  4. 2022杭电多校5题解报告(同步自语雀)

    一.赛后总结 Wuhu~萌新又来啦~ 第一次在考场上写出NTT,虽然是比较裸,但感觉真的不错~ 开场看03,思路比较直,就是dijk,但跨层跳跃想了好久~最后想到了类似于B树或者B-树一类的层内链表, ...

  5. 2022杭电多校4题解报告(同步自语雀)

    一.赛后总结 嘤嘤嘤,本人纯萌新,深夜反思自己到底有多菜~(:′⌒`) 前天没写出状压,再前面不会SAM和圆方树,再往前不会NTT和FFT,真的是个啥也不会的萌新呢. 这场主要的问题在于02的0环和1 ...

  6. 2022牛客多校2题解报告(同步自语雀)

    一.赛后总结 总结就是缺乏清晰的大脑,当然一切的一切归因于实力不足. 开局看K,半个小时推出DP式子,交了就WA.差错没查出来,写了暴力对拍,就去看D了.后来拍了3个小时也没出问题...可能是数据生成 ...

  7. 【题解报告】ZJNU综合训练(2021.1.26)

    [题解报告]ZJNU综合训练(2021.1.26) B C D F H I J M 综合训练 ZJNU综合训练(2021.1.26) B:DP+搜索 | CF 1057C C:组合数学+dp | CF ...

  8. 题解报告(CDUT暑期集训——第三场)

    题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口 ...

  9. 题解报告(CDUT暑期集训——第二场)

    题解报告(CDUT暑期集训--第二场) D - Game HDU - 6312 思路:水题 Alice一直是必胜态 AC代码 #include<stdio.h> #include<i ...

  10. 题解报告(CDUT暑期集训——第四场)

    题解报告(CDUT暑期集训--第四场) Problem D. Nothing is Impossible HDU - 6335 思路:水题 排个序循环判断就出来了 AC代码 #include<s ...

最新文章

  1. Java初学者必看2
  2. RedHat Enterprise LInux 6.3 安装Oracle Database 11g
  3. 图的邻接矩阵表示与最短路径算法( Dijkstra )代码实现
  4. EOS开发步骤(2) 钱包操作
  5. 【VC基础】 5、对象相关性(Object Dependencies)
  6. redis 正则匹配value_Redis 获取匹配所有的key
  7. Java基础与数据库对应数据--Java基础2阶段
  8. HTTP::Request
  9. 开课吧:一文解析Nexus是什么
  10. 2022年寒假ACM练习2(待补题)
  11. 【统计学】三大相关系数之斯皮尔曼相关系数(spearman correlation coefficient)
  12. vp9 segment 详细分析
  13. 基于卷积神经网络的自然场景作物害虫识别
  14. Unity创建游戏物体的三种方法
  15. AidLearning0.87F3安装Python3.8
  16. java解压缩zip、rar
  17. 服务器android打包,在服务器上使用 gradle 打包 android 源码
  18. 2021-03-30
  19. SAP各模块字段与表的对应关系
  20. Android/Linux 全志平台摄像头sensor调试记录(一)

热门文章

  1. Looksery Cup 2015 B. Looksery Party 暴力
  2. Mybatis 配置文件(转载)
  3. SQL语句执行效率及分析(轉)
  4. 如何求出三角形的面积
  5. learning scala pattern matching 03
  6. Leetcode 1013. 总持续时间可被 60 整除的歌曲
  7. sqlserver 组内排序
  8. Android-界面-布局
  9. 图灵完备-转自 知乎 陈超 的回答
  10. (转)如何真正实现由文档驱动的API设计?