HDU 2089 不要62 (数位DP)
1 #include <iostream> 2 #include <cstdio> 3 #include <string> 4 #include <queue> 5 #include <vector> 6 #include <map> 7 #include <algorithm> 8 #include <cstring> 9 #include <cctype> 10 #include <cstdlib> 11 #include <cmath> 12 #include <ctime> 13 #include <climits> 14 using namespace std; 15 16 long long DP[20][20]; 17 18 void ini(void); 19 long long solve(int n); 20 int main(void) 21 { 22 int n,m; 23 24 ini(); 25 while(cin >> n >> m && n + m) 26 cout << solve(m + 1) - solve(n) << endl; 27 28 return 0; 29 } 30 31 void ini(void) 32 { 33 DP[0][0] = 1; 34 for(int i = 1;i <= 7;i ++) 35 for(int j = 0;j <= 9;j ++) 36 for(int k = 0;k <= 9;k ++) 37 if(j != 4 && !(j == 6 && k == 2)) 38 DP[i][j] += DP[i - 1][k]; 39 } 40 41 long long solve(int n) 42 { 43 int dig[20] = {0}; 44 int count = 1; 45 46 while(n) 47 { 48 dig[count] = n % 10; 49 n /= 10; 50 count ++; 51 } 52 53 long long ans = 0; 54 for(int i = count - 1;i >= 1;i --) 55 { 56 for(int j = 0;j < dig[i];j ++) 57 if(j != 4 && !(j == 2 && dig[i + 1] == 6)) 58 ans += DP[i][j]; 59 if(dig[i] == 4 || (dig[i + 1] == 6 && dig[i] == 2)) 60 break; 61 } 62 63 return ans; 64 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?