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

CF1606E Arena 题解(动态规划)

考虑设 \(f_{i,j}\) 表示现在存活 \(i\) 个人,血量最大的人为 \(j\)。这么设是因为注意到有没有胜者其实之和血量最大的是谁,以及有多少个血量最大的有关。

边界情况 \(f_{1,i}=0\)

考虑转移。如果 \(j<i\),则所有人都会在下一轮死掉,就没有胜者,所以此时 \(f_{i,j}\) 就是所有合法的情况总数,也就是 \(j^i-(j-1)^i\),即值域 \([1,j]\) 序列个数减 \([1,j-1]\) 序列个数。

如果 \(j\ge i\),则我们枚举这一轮过去后死了 \(0\le k\le i\) 个人,选这 \(k\) 个人有 \(i \choose k\) 种选法,他们要死掉所以他们的血量一定要在 \([1,i-1]\) 之间,一共有 \((i-1)^k\) 种合法状态,最后乘上 \(f_{i-k,j-(i-1)}\)

时间复杂度 \(O(n^3)\),但是跑不太满。

const int MAXN = 505, mod = 998244353;
int n, x, C[MAXN][MAXN], f[MAXN][MAXN];int quickpow(int a, int b) {int ret = 1;while (b) {if (b & 1) ret = ret * a % mod;a = a * a % mod; b >>= 1;}return ret;
}int add(int x, int y) {x += y;if (x >= mod) x -= mod;return x;
}
int sub(int x, int y) {x -= y;if (x < 0) x += mod;return x;
}
int mul(int a, int b) {return a * b % mod;
}void work() {cin >> n >> x;for (int i = 1; i <= n; ++i) C[i][0] = 1, C[i][1] = i;for (int i = 1; i <= n; ++i) {for (int j = 2; j <= i; ++j) {C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % mod;}}f[1][0] = f[0][0] = 1;for (int i = 2; i <= n; ++i) {for (int j = 1; j <= x; ++j) {if (j < i) f[i][j] = sub(quickpow(j, i), quickpow(j - 1, i));else {for (int k = 0; k <= i; ++k) {f[i][j] = add(f[i][j], mul(C[i][k], mul(quickpow(i - 1, k), f[i - k][j - i + 1])));}}}}int ans = 0;for (int i = 1; i <= x; ++i)ans = add(ans, f[n][i]);cout << ans << endl;
}
http://www.hskmm.com/?act=detail&tid=35313

相关文章:

  • 服务器CPU市场概况2025
  • CSP-S 24
  • 读书笔记:深入理解java虚拟机
  • CSP-S 19
  • CSP-S 20
  • Flutter应用设置插件 - 轻松打开iOS和Android系统设置
  • CSP-S 22
  • Project. 2025.11化学小组pre
  • MySQLDay1
  • 蛋白表达标签:重组蛋白研究的精妙引擎
  • 106.腾讯地图位置服务再出错
  • 心理咨询系统
  • Adaptive Learning Rate(自适应学习率) - -一叶知秋
  • Luogu P10034 「Cfz Round 3」Circle 题解 [ 蓝 ] [ 背包 DP ] [ 质数筛 ] [ 图论 ] [ 构造 ]
  • 2025.10.20模拟赛
  • SQLite简单使用
  • 新学期每日总结(第12天)
  • 2025.10.20总结 - A
  • CF2107E Ain and Apple Tree
  • 傻瓜式处理kauditd0病毒程序记录
  • win10 升级 win11 后时间更新失败
  • 2025,为什么公众号编辑器排版决定阅读完成率?——一次从流程到结果的深评
  • 软件工程学习日志2025.10.20
  • P14254 分割(树上计数问题) 题解
  • P14262 [ROI 2015 Day1] 自动好友
  • 软件工程第二次团队作业
  • 超越技术范畴:低代码如何重塑企业数字文化
  • 歌手与模特儿
  • 20251019
  • 十六天