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

[题解]P14094 [ICPC 2023 Seoul R] Special Numbers

[题解]P14094 [ICPC 2023 Seoul R] Special Numbers
📅 发布时间:2026/6/20 14:06:31

P14094 [ICPC 2023 Seoul R] Special Numbers

数位 DP。

考虑使用 \(f[pos][g]\) 记忆化,其中:

  • \(pos\) 表示当前填到第几位。
  • \(g\) 表示填过位置的乘积与 \(k\) 的 \(\gcd\)。

根据这个表格我们知道,\(10^{17}\) 内的因数最多的数[1]只有不到 \(65536\) 个因数。所以 \(g\) 的取值不超过 \(65536\) 种,将第二维离散化一下就可以了。

代码中,第二位是用哈希表(gp_hash_table)现用现算的,常数不小,但是目前谷上最优解。

点击查看代码
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
#define int long long
using namespace std;
using namespace __gnu_pbds;
const int N=25,P=1e9+7;
int k,len,a[N],f[N][65536],idx;
string l,r;
gp_hash_table<int,int> ma;
inline int gcd(__int128 a,int b){int r=a%b;while(r) a=b,b=r,r=a%b;return b;
}
inline int dfs(int p,__int128 fc,bool zro,bool lim){int g=gcd(fc,k),gg;if(!p) return g==k;if(ma.find(g)==ma.end()) ma[g]=gg=idx++;else gg=ma[g];if(!zro&&!lim&&(~f[p][gg])) return f[p][gg];int rig=lim?a[p]:9,ans=0;for(int i=0;i<=rig;i++){bool tzro=zro&&!i;ans+=dfs(p-1,tzro?1:fc*i,tzro,lim&&i==rig);}ans%=P;if(!zro&&!lim) f[p][gg]=ans;return ans;
}
inline int solve(string& s){len=s.size();for(int i=0;i<len;i++) a[len-i]=s[i]-'0';return dfs(len,1,1,1);
}
inline bool check(string& s){int f=1;for(int i:s) if(!((f*=i-'0')%=k)) return 1;return 0;
}
signed main(){memset(f,-1,sizeof f);cin>>k>>l>>r;cout<<(solve(r)-solve(l)+check(l)+P)%P<<"\n";//字符串-1不好做,左端点单独处理(其实int128就可以)return 0;
}

另一种做法是考虑到 \(k\) 若有某个超过 \(10\) 的质因数,则一定无解。因此只需要用质因子 \(2,3,5,7\) 的指数进行记忆化即可。


  1. 即 Highly Composite Numbers,表格数据来源。 ↩︎

相关新闻

  • 10-16
  • 10-15
  • 11/5

最新新闻

  • 2026 年大同厨卫屋顶防水修缮三家对比测评 吉修匠 99.8 分稳居榜首 - 吉修匠
  • 【PC】[吾爱大神原创工具]《音乐音量管理器》统一音量调整,支持无损 V1.0.0
  • 2026东莞黄金回收商家多维度对比测评 合规渠道选择参考 - 薛定谔的梨花猫
  • 2026年6月市面上评价好的专用校车门店口碑推荐,46座小学生校车/东风二手校车/二手校车,专用校车公司哪家好 - 品牌推荐师
  • 蓝桥杯单片机实战:EEPROM数据持久化存储与I2C通信详解
  • Xournal++终极字体配置指南:告别混乱,打造完美手写笔记

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 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 号