当前位置: 首页 > news >正文

1 ACwing 271 Mr

ACwing 271 Mr.Yang's Picture Permutations

题面

有 N 个学生合影,站成左端对齐的 k 排,每排分别有 N1,N2,…,Nk 个人。 (N1≥N2≥…≥Nk)

在合影时要求每一排从左到右身高递增,每一列从后到前身高也递增。

第 i 个人的身高为 i

\(1 \le k \le 5,N \le 30\)

题解

这道题我们可以按照从 1 到 n 的顺序考虑每个人的位置,设每排的人数分别为 \(a_1,a_2,a_3...a_k\)

第 i 个人可以放在第 i 排,当且仅当 \(a_i < N_i\) 并且 \(a_{i - 1} > a_i\)

我们设 \(f[a_1][a_2][a_3][a_4][a_5]\) 表示每排已经放的人数为 \(a_1...\) 的方案数

初始为 \(f(0,0,0,0,0) = 1\) ,目标状态为 \(f(N_1, N_2...)\)\(k\) 不足 5 的我们可以补齐,令 \(N_i\) 为 0 即可

转移(假设放在第 \(1\) 排):\(f(a_1 + 1, a_2...) += f(a_1,a_2...)\)

由均值不等式,最坏情况下有 \((\frac N k ) ^ k\) 个状态,计算每个状态的计算量为 \(O(k)\) 所以总的时间复杂度为 \(O(k(\frac N k)^k)\)

code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>using namespace std;typedef long long ll;const int N = 35;ll f[N][N][N][N][N];int main () {int n;while (cin >> n && n) {int s[5] = {};for (int i = 0; i < n; i++) cin >> s[i];memset (f, 0, sizeof f);f[0][0][0][0][0] = 1;for (int a = 0; a <= s[0]; a ++) {for (int b = 0; b <= s[1]; b ++) {for (int c = 0; c <= s[2]; c ++) {for (int d = 0; d <= s[3]; d ++) {for (int e = 0; e <= s[4]; e ++) {auto now = f[a][b][c][d][e];f[a + 1][b][c][d][e] += now;if (b < a) f[a][b + 1][c][d][e] += now;if (c < b) f[a][b][c + 1][d][e] += now;if (d < c) f[a][b][c][d + 1][e] += now;if (e < d) f[a][b][c][d][e + 1] += now;}}}}}cout << f[s[0]][s[1]][s[2]][s[3]][s[4]] << endl;}return 0;
}
http://www.gsyq.cn/news/16205.html

相关文章:

  • 实用指南:B站视频下载器 v1.0.4|免登录下载1080P视频
  • 私有云大数据部署:从开发到生产(Docker、K8s、HDFS/Flink on K8s) - 详解
  • 17 LCA模拟赛1T2 剧院始于演员 题解
  • 3 2025 04 23 模拟赛总结
  • 14 收心赛3 T1 最长不降子序列 题解
  • 阿里开源规则引擎QLExpress
  • cf296b
  • 原版 Sunshine+虚拟显示器实现熄屏串流
  • 实用指南:万兴PDF手机版
  • 价值原语博弈协议:价值原语共识锚定原则
  • 25fall做题记录-October - Amy
  • 2025桩基检测机构最新企业咨询服务推荐排行榜,海上桩基检测,水上桩基检测服务推荐这十家公司!
  • 算法坑点
  • ASP.NET Core SignalR 身份认证集成指南(Identity + JWT) - 详解
  • LeetCode 139. 单词拆分(Word Break) - 动态规划深度解析 - 详解
  • 高考加油!UI界面生成器! - 教程
  • 分布式微服务系统架构第142集:全栈构建
  • 实用指南:云原生时代 Kafka 深度实践:03进阶特性与最佳实践
  • 实用指南:MyBatis 的动态 SQL
  • 【开源程序】 黑客帝国系列系统监控软件:基于PyQt5的全方位资源监控系统
  • VR/AR 显示瓶颈将破!铁电液晶技巧迎来关键突破
  • Axure 基础入门 - 实践
  • 博客园-awescnb插件-geek皮肤异常问题修复
  • ROM和RAM
  • 整理数据制作 直方图,箱须图,概率密度估计(KDE)图
  • 基于本地模型+多级校验设计的高效缓存,有效节省token数量(有点鸡肋doge) - 详解
  • 深入解析:Elasticsearch的集群管理介绍
  • 实用指南:Appium如何支持ios真机测试
  • 目标检测任务的评估指标P-R曲线 - 指南
  • 【JNI】JNI环境搭建