列表及其常用灰魔法

Posted jgua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表及其常用灰魔法相关的知识,希望对你有一定的参考价值。

题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3709

枚举中心位置,进行数位DP

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[25][25][5000];//dp[pos][center][Value];
ll x,y;
vector<int>shu;
ll dfs(int pos,int center,int V,int sp){
    if(V<0) return 0;
    if(pos==-1) return !V;
    if(!sp&&dp[pos][center][V]!=-1) return dp[pos][center][V];
    ll ans=0;
    int maxn=sp?shu[pos]:9;
    for(int i=0;i<=maxn;i++){
        ans+=dfs(pos-1,center,V+(pos-center)*i,sp&&i==maxn);
    }
    if(!sp) dp[pos][center][V]=ans;
    return ans;
}
ll cal(ll num){
    shu.clear();
    while(num){
        shu.push_back(num%10);
        num/=10;
    }
    ll ans=0;
    for(int i=0;i<shu.size();i++){
        ans+=dfs(shu.size()-1,i,0,1);
    }
    return ans-shu.size()+1;//每次枚举都有0
}
int main(){
    int t;cin>>t;
    memset(dp,-1,sizeof(dp));
    while(t--){
        cin>>x>>y;
        cout<<cal(y)-cal(x-1)<<endl;
    }
}

 

以上是关于列表及其常用灰魔法的主要内容,如果未能解决你的问题,请参考以下文章

字符串及其常用魔法方法

灰魔法师

Python老男孩 day12 列表的魔法

python的四种灰魔法

6.mybatis里面的动态sql是怎么设定的,常用标签有那些以及其

Python中的基本函数及其常用用法简析