zoukankan      html  css  js  c++  java
  • 数dp多少个0-n多少0-9

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 15;
    int n;
    int dp[N][N][N];
    int a[N],f[N];
    int main() {
    	freopen("in.txt", "r", stdin);
    	freopen("out.txt", "w", stdout);
    
    	for (int t = 0; t < 23; t++) {
    		scanf("%d", &n);
    		int k = 0;
    		while (n) {
    			a[k++] = n % 10;
    			n /= 10;
    		}
    		int d = 1;
    		memset(dp, 0, sizeof dp);
    		for (int i = 0; i < k; i++) {
    			for (int j = 0; j < 10; j++) {
    				for (int y = 0; y < 10; y++) {
    					if (i > 0) {
    						for (int x = 0; x < 10; x++) {
    							dp[i][j][y] += dp[i - 1][x][y];
    						}
    					}
    					if (j == y) {
    						dp[i][j][y] += d;
    					}
    				}
    			}
    			d *= 10;
    		}
    		memset(f, 0, sizeof f);
    		for (int i = 0; i < 10; i++)
    			for (int j = 0; j < k; j++)
    				for (int x = 0; x < a[j]; x++)
    					f[i] += dp[j][x][i];
    		int x = 1, y = 0;
    		for (int i = 0; i < k; i++) {
    			f[a[i]] += y + 1;
    			y += x*a[i];
    			f[0] -= x;
    			x *= 10;
    		}
                    f[0]++;
    		for (int i = 0; i < 10; i++)
    			printf(i == 9 ? "%d
    " : "%d ", f[i]);
    	}
    }
    
  • 相关阅读:
    Spring
    数据库架构
    Spring
    Spring
    Spring
    服务的有状态和无状态(转)
    Java基础
    Ubuntu
    Ubuntu
    Ubuntu
  • 原文地址:https://www.cnblogs.com/HaibaraAi/p/4356091.html
Copyright © 2011-2022 走看看