尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

35 ACwing 297 The Battle Chibi 题解

35 ACwing 297 The Battle Chibi 题解
📅 发布时间:2026/6/19 12:52:38

The Battle of Chibi

题面

给定一个长度为 \(N\) 的序列 \(A\) ,求 \(A\) 有多少个长度为 \(M\) 的严格递增子序列

\(1 \le M \le N \le 1000,\ |A_i| \le 10^9\)

答案对 \(10^9\) 取模

题解

设 \(f(i,j)\) 表示以 \(a_j\) 为结尾的长度为 \(i\) 的严格递增子序列的数量,初始 \(f(0, 0) = 1\) ,目标:\(\sum f(m,j)\)

转移

\[f(i,j) = \sum_{0 \le k < j, a_k < a_j} f(i - 1, k) \]

这个要是直接做的话时间复杂度为 \(O(N^2)\)

所以我们要想办法优化一下,因为是所有满足 \(0 \le k < j, a_k<a_j\) 的 \(k\) ,所以可以用树状数组,\(t(a_k) = f(i - 1, k)\) ,然后在树状数组中查询即可

但是因为 \(A_i\) 的范围太大,树状数组存不下,所以要提前离散化一下,然后就可以 \(O(n \log n)\) 的进行一阶段的转移

总时间复杂度为 \(O(mn \log n)\)

code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>using namespace std;const int N = 3e3 + 10;
const int mod = 1e9 + 7;int T, n, m, mn;
int a[N], b[N], val[N];
int t[N], f[N][N];void add (int x, int d) {while (x <= mn) {t[x] = (t[x] + d) % mod;x += x & -x;}
}int ask (int x) {int res = 0;while (x) {res = (res + t[x]) % mod;x -= x & -x;}return res;
}void solve (int id) {cin >> n >> m;mn = n;for (int i = 1; i <= n; i ++) {cin >> a[i];b[i] = a[i];}a[0] = -2e9;b[ ++ mn] = a[0];sort (b + 1, b + 1 + mn);mn = unique (b + 1, b + 1 + mn) - 1 - b;for (int i = 0; i <= n; i ++) {val[i] = lower_bound (b + 1, b + 1 + mn, a[i]) - b;}memset (f, 0, sizeof f);f[0][0] = 1;for (int i = 1; i <= m; i ++) {memset (t, 0, sizeof t);add (val[0], f[i - 1][0]);for (int j = 1; j <= n; j ++) {f[i][j] = ask (val[j] - 1);add (val[j], f[i - 1][j]);}}int res = 0;for (int i = 1; i <= n; i ++) {res = (res + f[m][i]) % mod;}printf ("Case #%d: %d\n", id, res);}int main () {cin >> T;for (int i = 1; i <= T; i ++) {solve (i);}return 0;
}

相关新闻

  • 一款由网易出品的免费、低延迟、专业的远程控制软件,支持手机、平板、Mac 、PC、TV 与掌机等多设备远控电脑!
  • aardio跨窗口传递变量
  • AI在简单视觉推理谜题中的挑战

最新新闻

  • 按摩椅双推杆泰式拉筋与普通拉伸效果差异先对照推杆行程与拉伸角度 - 新闻快传
  • 深入解析UART异步串行通信:从分数分频器到硬件流控制
  • 考研政治网课哪家押题准? - 新闻快传
  • Gemini 3多模态系统级协同:视觉定位、跨模态对齐与工具内生化
  • ClaudeCode开源解析:多模态AI Agent如何实现真实电脑操作
  • 2026昭通2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号