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

#dp#L 最多变的序列

题目

小 E 拥有一个 \(n\) 的全排列序列 \(a_i\)。ta 可以进行操作,一次操作形如:选择一个子区间 \(a[l..r]\),将这个区间内的所有数替换为它们的最小值,

小 E 想问你,进行任意次这样的操作(可以一次也不操作),能得到多少种不同的序列。你只需要求这个值对 \(998244353\) 取模的结果即可。


分析

对于序列中某个值 \(c\) 出现的位置,⼀定是连续的⼀段区间 \([l,r]\)。且这个区间原本的最小值恰好为 \(c\)。针对这样合法的序列统计,只需要从左到右考虑当前 \(a_i\) 能覆盖的⼀段区间即可。

\(dp[i][j]\) 表示前 \(i\) 个数,第 \(i\) 个位置被某个值覆盖时右端点的位置,那么就是求出 \(a_i\) 覆盖的范围,那么在 \([l,r]\) 之间,\(dp[i][j]+=dp[i-1][j]\)


代码

#include <iostream>
#include <algorithm>
using namespace std;
int Test,n,dp[3011],a[3011];
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);for (cin>>Test;Test;--Test){cin>>n;for (int i=1;i<=n;++i) cin>>a[i];dp[0]=1;for (int i=1;i<=n;++i){int l=i,r=i;while (l>=1&&a[l]>=a[i]) --l;while (r<=n&&a[r]>=a[i]) ++r;for (int j=l+1;j<r;++j) dp[j]=(dp[j]+dp[j-1])%998244353;}cout<<dp[n];for (int i=0;i<=n;++i) dp[i]=0;}return 0;
}
http://www.aitangshan.cn/news/534.html

相关文章:

  • idea系列问题
  • Infoblox推出革命性高级威胁防御方案,通过DNS层防护主动抵御AI驱动的复杂攻击
  • 电商交易-履约-库存中心业务模型设计
  • pyyzDay8
  • 基于OAuth2与JWT的微服务API安全实战经验分享 - 实践
  • 文件或文件夹访问被拒绝,文件没有权限: 1.gpedit.msc--WINDOWS设置--安全设置--安全选项--用户帐户控制:以管理员批准模式运行所有管理员---已启用
  • 那快把题端上来吧(三)
  • 时变特征场景下的主动特征获取方法评估
  • (势能线段树)SPOJ GSS4/洛谷 P4145 上帝造题7分钟/P7334 吊打 题解
  • 6.3.3 狄利克雷卷积
  • 6.3.1常见积性函数
  • 一些 DS 题目
  • 虚弱相关-【改错】-下
  • 这一次,国产全自研高性能图形GPU真的来了
  • 一文彻底讲透:AI大模型应用架构全解析
  • 读开源项目成功之道11开源项目落幕
  • 2025未来科学大奖揭晓!每人奖金约720万元
  • Dataclass
  • 计算机基础之编程
  • WRC观点:人形机器人五大爆发趋势
  • dotnet X11 获取多屏 edid 信息
  • SEO 快速流量见效的方式-新词
  • 揭开红血球双凹碟形之谜
  • OVS配置CookBook
  • 推荐7本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》
  • 打开手机 设置:搜索快应用管理--打开,删除其中不是自己安装的APP,可能有好多不是自己安装的
  • 递归因果发现算法与Python实现
  • 镜像地址相关
  • 军用警用无线电加密算法存在严重漏洞,可被轻易破解
  • Mybatis-Plus的InnerInterceptor插件之beforeQuery方法