动态规划--数位DP

https://www.acwing.com/problem/content/340/

 

复制代码
 1 #include<iostream>
 2 #include<vector>
 3 using namespace std;
 4 int get(vector<int> v,int l,int r){
 5     int res=0;
 6     for(int i=l;i>=r;i--){
 7         res=res*10+v[i];
 8     }
 9     return res;
10 }
11 int power10(int n){
12     int res=1;
13     for(int i=0;i<n;i++){
14         res*=10;
15     }
16     return res;
17 }
18 int count(int n,int x){
19     vector<int> v;
20     while(n){
21         v.push_back(n%10);
22         n/=10;
23     }
24     n=v.size();
25     int res=0;
26     for(int i=n-1-!x ;i>=0;i--){
27         if(i<n-1){
28             res+=get(v,n-1,i+1)*power10(i);
29             if(x==0){
30                 res-=power10(i);
31             }
32         }
33         if(v[i]==x){
34             res+=get(v,i-1,0)+1;
35         }else if(v[i]>x){
36             res+=power10(i);
37         }
38     }
39     return res;
40 }
41 int main(void){
42     int a,b;
43     while(cin>>a>>b,a||b){
44         if(a>b) swap(a,b);
45         for(int i=0;i<10;i++){
46             cout<<count(b,i)-count(a-1,i)<<" ";
47         }
48         cout<<endl;
49     }
50     return 0;
51 }
复制代码

 

posted on   greenofyu  阅读(34)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示