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

Codeforces Round 235 D. Roman and Numbers

Problem - D - Codeforces

思路

这道题目要求重现排列n的数字让其模上m等于0且新得到的数没有前导零。

观察到数字最多只会有18位,所以我们又能想到状压。但是排列怎么状压呢?

其实排列就是组合在最后一位加入一个数。在知道了这一点了之后,我们就能将选择哪些位的数状态压缩,在转移时,我们将当前状态的数去掉一位并将该为数放在去掉一位的状态的末尾转移至当前状态。

这里我们还需要一个vis数组避免重复。

正解

#include<bits/stdc++.h> using namespace std; typedef long long LL; LL n; int m; int w[19], cnt; LL dp[1<<19][100]; bool vis[10]; int main() { cin>>n>>m; while(n) { w[cnt++] = n % 10; n /= 10; } dp[0][0] = 1; for(int S = 1; S < (1 << cnt); S ++) { memset(vis, false, sizeof vis); for(int k = 0; k < cnt; k ++) { if(S == (1 << k) && w[k] == 0) break; if(!(S & (1 << k)) || vis[w[k]]) continue; vis[w[k]] = true; for(int j = 0; j < m; j++) dp[S][(j * 10 + w[k]) % m] += dp[S ^ (1 << k)][j]; } } cout<<dp[(1 << cnt) - 1][0]; return 0; }
http://www.jsqmd.com/news/1139670/

相关文章:

  • 餐桌上的“隐形增效剂”:一文读懂甲氧苄啶的安全逻辑与快检科普
  • SSRF漏洞深度解析:原理、利用、绕过与纵深防御实战
  • 解决文件正在使用无法删除,顽固文件清理工具超好用
  • 计算机毕业设计之基于Web技术的测试管理工具设计与实现
  • 抖音无水印下载终极指南:简单三步搞定批量下载
  • 晨控CK-FR101ANS与松下FP0H系列PLC配置EtherNet/IP通讯连接手册
  • 【Azure Services Platform Step by Step-第13篇】在Windows Azure中使用PHP
  • Cadence Allegro 17.4 差分对设置:CM约束管理器 Electrical vs Physical 3大核心差异详解
  • 2026大容量破壁机冷热双用,3-6人使用刚刚好
  • 大模型破解医疗数据困境:从非结构化文本到可计算知识
  • 当40岁失业门将沃齐尼亚扑出梅西4次必进球,我悟了:这就是Hermes Agent 自进化架构的终极形态
  • ADS 2024 PI仿真:电容ESR/ESL/C三参数对阻抗曲线影响的3种量化分析
  • 增量式 vs 位置式 PID:直流电机双闭环控制5组参数实测与选型指南
  • 加强版curl编写
  • CTF网络取证实战:20个Wireshark高效解题技巧
  • SRAM vs DRAM 性能对比:从6管单元到1T1C,延迟差10倍的硬件原理
  • 基于OpenClaw多Agent系统构建Obsidian智能记忆系统实践
  • Hermes Agent网关:多智能体协同的运行时中枢与生产落地指南
  • Sklearn 1.4 回归评估指标实战:6大指标在糖尿病数据集上的量化对比
  • Windows 11 TensorFlow GPU 3种替代方案评测:WSL2 vs Docker vs 降级2.10
  • B300 GPU维修实践:5类高频故障现象及Root Cause分析
  • 前后端SHA256加密结果不一致?八大原因与解决方案全解析
  • BigArray#
  • .NET 10 的正则性能现在什么水平?我拿它和 Go、Python、C++、PCRE2 测了一轮
  • WaveTools:一键解锁《鸣潮》120FPS高帧率与画质优化完整指南
  • 北京华恒智信为酒店行业搭建三维人才分流体系化解业务用人难题
  • 跨平台视频解密工具:轻松下载微信视频号、抖音等加密资源
  • 3分钟制作USB启动盘:Rufus极速格式化工具全攻略
  • ORB-SLAM3 SearchByBoW 2
  • 写在开头:我为什么开这个专栏?