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

NOIP2021 T2

给定整数 \(n, m, k(k \le n \le 30, m \le 100)\),和一个长度为 \(m + 1\) 的正整数数组 \(v_0, v_1, \ldots, v_m\)。对于一个长度为 \(n\),每个元素均不超过 \(m\) 的非负整数序列 \(\{a_i\}\),我们定义它的权值为 \(v_{a_1} \times v_{a_2} \times \cdots \times v_{a_n}\)

当这样的序列 \(\{a_i\}\) 满足整数 \(S = 2^{a_1} + 2^{a_2} + \cdots + 2^{a_n}\) 的二进制表示中 \(1\) 的个数不超过 \(k\) 时,我们认为 \(\{a_i\}\) 是一个合法序列。计算所有合法序列 \(\{a_i\}\) 的权值和对 \(998244353\) 取模的结果。

DP 是几乎演都不演了。令 \(dp_{i, j, k, x}\) 表示有 \(j\) 个数 \(\le i\),向 \(S\) 的第 \(i + 1\) 为进了 \(k\) 的位,\(S\)\(0 \sim i\) 位有 \(x\)\(1\) 的权值和。枚举有多少个数为 \(i + 1\) 转移即可。

时间复杂度:\(O(n^4m)\),应该有个 \(\frac{1}{16}\) 的常数,通过不难。

http://www.rkmt.cn/news/23206.html

相关文章:

  • 从零开始实现简易版Netty(九) MyNetty 实现池化内存的线程本地缓存
  • ubuntu 主机创建虚拟 ip,应对容器内部配置了宿主固定 ip,宿主迁移网络环境后容器报错
  • 2025权威报告:微信编辑器排版Top 10工具推荐(全链路解决方案)
  • 洛谷 P10149
  • ubuntu配置vsftpd
  • 时序数据库 Apache IoTDB 等你“打卡”!2025 OSCAR 开源产业大会完整版议程揭晓
  • 洛谷 P12865
  • ubuntu清理内存缓存
  • 单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石
  • 10.17 CSP-S模拟33 改题记录
  • 包装类(基本数据类型对应的引用数据类型)
  • 系统稳定性监控
  • 详细介绍:k8s部署前后分离架构微服务——跨域和缓存问题
  • npm镜像配置
  • 一些特性
  • AGC 板刷记录1
  • 2025.10.17总结
  • 记Windows 11环境Rust下载安装配置流程
  • K8s学习笔记(九) job与cronjob - 教程
  • [PaperReading] VLM2Vec-V2: Advancing Multimodal Embedding for Videos, Images, and Visual Documents
  • 标悬浮展开多级菜单
  • 深入解析Pure恶意软件家族:从RAT到构建器再到开发者
  • 3. JVM 运行时数据区
  • 软工学习日志
  • 修电脑不求人:AI智能修复电脑工具的体验分享
  • Xcode上编译调试ffmpeg - 详解
  • 《程序员修炼之道》阅读笔记1
  • OOP - 实验一
  • 题解:qoj8329 Excuse
  • VMware17.6图文安装教程(附安装包)VMware17.6