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

abc436_g

题目链接

由于 \(M\) 很大且是完全背包,可以考虑二进制分组,把物品 \(a _ i\) 拆成体积为 \(2 ^ 0 a _ i, 2 ^ 1 a _ i, 2 ^ 2 a _ i, \ldots\) 的物品,转化成 01 背包问题。

先考虑 \(2 ^ 0 a _ i\) 的那些物品,可以跑一遍 01 背包计算出 \(f _ i\) 表示体积之和为 \(i\) 的方案数,然后因为后面物品的体积都是 \(2\) 的倍数,所以可以把剩余体积 \(M - i\) 二进制下最后一位删掉。具体地,令 \(g _ i\) 为下一阶段的初始状态,有

  • \(M\) 为奇数:\(f _ i \rightarrow g _ {\lfloor i / 2 \rfloor}\)

  • \(M\) 为偶数:\(f _ i \rightarrow g _ {\lceil i / 2 \rceil}\)

然后令 \(M \leftarrow \lfloor M / 2 \rfloor\),继续做 \(2 ^ 1 a _ i, 2 ^ 2 a _ i, \ldots\) 即可。最终答案为 \(f _ 0\)

#include<cstdio>
#include<cstring>
#define N 105
#define V 20005
using namespace std;const int mod=998244353,lgm=60,v=2e4;
int n,a[N],f[V],g[V];
long long m;
void add(int &x,long long y) {x=(x+y)%mod;}
int main() {scanf("%d%lld",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);f[0]=1;for(int i=0;i<lgm;i++) {for(int j=1;j<=n;j++)for(int k=v;k>=a[j];k--)add(f[k],f[k-a[j]]);memset(g,0,sizeof(g));for(int k=0;k<=v;k++)if(m>>i&1) add(g[k/2],f[k]);else add(g[(k+1)/2],f[k]);memcpy(f,g,sizeof(f));}printf("%d\n",f[0]);return 0;
}
http://www.zskr.cn/news/175032.html

相关文章:

  • 16_不会写prompt? Gemini Gems + 一段提示词搞定所有prompt!
  • 2025年12月厦门中式风格装修公司推荐:五强企业综合实力对比评测排行榜 - 十大品牌推荐
  • 快速创建与读取 Excel:Java 开发者必备的 Spire.XLS 实战技巧
  • 2025年终中国管理咨询公司推荐:服务能力与落地成效双维度实测TOP10排名。 - 品牌推荐
  • 社保代缴机构水太深?希创人事教你三步识破伪装 ​
  • 2025年12月厦门旧房翻新公司推荐榜:权威评测排行与实用选择指南深度解析 - 十大品牌推荐
  • GitHub Template仓库快速初始化PyTorch项目
  • 2025年12月厦门新房装修公司推荐:专业评测对比与性价比优选排行榜单 - 十大品牌推荐
  • 2025年12月厦门旧房翻新公司推荐榜:TOP5企业综合实力深度评测与选择指南 - 十大品牌推荐
  • 2025年12月厦门旧房翻新公司实力榜单:五强企业深度评测与选择指南 - 十大品牌推荐
  • Android 端构建高性能 RTSP 转 RTMP|轻量级RTSP服务 网关:透传与二次编码深度实践
  • PyTorch模型量化Quantization入门教程
  • GitHub Sponsor支持PyTorch开源开发者
  • windows电脑如何修改或同步系统时间 - Fear-is
  • Anaconda环境隔离避免PyTorch版本冲突
  • 低成本私有化部署:吱吱即时通讯软件适用中小企业
  • Multisim 下载安装教程Multisim 14.3超详细图文教程
  • GitHub托管PyTorch项目最佳实践:结合镜像提升协作效率
  • 2025年成都青白江为明学校:深度解析其师资力量与教育成效 - 品牌推荐
  • Jupyter Notebook版本控制集成Git
  • 2025年终连锁酒店推荐:结合用户评价与投资模型的多维度指南 - 品牌推荐
  • 2025年机床钣金外壳厂家综合排行,口碑与品质双保障,市面上机床钣金外壳技术领航,品质之选 - 品牌推荐师
  • 2025年终连锁酒店推荐:不同定位与客群适配的精选品牌对比 - 品牌推荐
  • 告别繁琐循环:Python 推导式 (Comprehensions) 终极入门指南
  • Jupyter Notebook中运行PyTorch模型:PyTorch-CUDA-v2.7镜像使用详解
  • 网页编辑器导入Word文档图片并自动上传组件
  • Anaconda环境快照备份PyTorch配置
  • ckeditor前端网页Word图片转存自动上传插件
  • 淮北耐力板厂家
  • Anaconda环境迁移复制PyTorch配置