zoukankan      html  css  js  c++  java
  • [Nowcoder] 数数字

    题意:。。。咕咕懒得写了。

    思路:
    裸的记搜...

    #include <bits/stdc++.h>
    using namespace std;
    #define ll long long
    map<ll,ll>mp[200010];
    ll L,R;
    inline int read() {
    	int q=0,f=1;char ch = getchar();
    	while(!isdigit(ch)){
    		if(ch=='-')f=-1;ch=getchar();
    	}
    	while(isdigit(ch)){
    		q=q*10+ch-'0';ch=getchar();
    	}
    	return q*f;
    }
    ll l,r,ans;
    int a[31];
    int top;
    inline ll dfs(ll p,ll lim,ll s) {
    	if(p == 0) {
    		if(s == -1) {
    			s = 0;
    		}
    		return L <= s && s <= R;
    	}
    	if(!lim && mp[p][s]) {
    		return mp[p][s] - 1;
    	}
    	ll res = 0;
    	int mx = lim ? a[p] : 9;
    	for(int i = 0;i <= mx; ++i) {
    		if(s == -1) {
    			if(!i) {
    				res += dfs(p - 1,lim && i == a[p],-1);
    			}
    			else res += dfs(p - 1,lim && i == a[p],i);
    		}
    		else {
    			res += dfs(p - 1,lim && i == a[p],s * i);
    		}
    	}
    	if(!lim) {
    		mp[p][s] = res + 1;
    	}
    	return res;
    }
    inline ll work(ll x) {
    	if(x == -1) {
    		return 0;
    	}
    	else {
    		top = 0;
    		while(x) {
    			a[++top] = x % 10;x /= 10;
    		}
    	}
    	return dfs(top,1,-1);
    }
    
    int main () {
    	scanf("%lld %lld %lld %lld",&l,&r,&L,&R);
    	printf("%lld\n",work(r) - work(l - 1));
    	return 0;
    }
    
    
    
  • 相关阅读:
    @font-face
    闭包
    DOM事件
    DOM属性
    使用谷歌chrome浏览器查看任何标签的固有属性
    chmod命令
    C++笔记之零碎点
    C++学习之 —— 输入输出
    常见素数筛选方法原理和Python实现
    Django的MVT模型
  • 原文地址:https://www.cnblogs.com/akoasm/p/9614674.html
Copyright © 2011-2022 走看看