zoukankan      html  css  js  c++  java
  • hdu3652(数位dp)

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

    题意:求1~n含有13且能被13整除的数的个数。

    分析:数位dp,dp数组加一维来维护到pos位模13的余数,则dp[pos][mod][2]表示非限制条件下到pos位模13余mod且已含有13的总个数,dp[pos][mod][1]表示没含有13但前一位是1且模13余mod的总个数,dp[pos][mod][0]表示没含有13前一位不为1模13余mod的总个数。。。

    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cmath>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    #include <cstdlib>
    #include <stack>
    #include <vector>
    #include <set>
    #include <map>
    #define LL long long
    #define mod 10007
    #define inf 0x3f3f3f3f
    #define N 100010
    #define FILL(a,b) (memset(a,b,sizeof(a)))
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    using namespace std;
    int dp[12][15][3];
    int dig[12];
    int dfs(int pos,int pre,int md,int flag,int limit)
    {
        if(!pos)return flag&&md==0;
        if(!limit&&flag&&~dp[pos][md][2])return dp[pos][md][2];
        if(!limit&&!flag&&pre==1&&~dp[pos][md][1])return dp[pos][md][1];
        if(!limit&&!flag&&pre!=1&&~dp[pos][md][0])return dp[pos][md][0];
        int len=limit?dig[pos]:9;
        int ans=0;
        for(int i=0;i<=len;i++)
        {
            ans+=dfs(pos-1,i,(md*10+i)%13,flag||(pre==1&&i==3),limit&&i==len);
        }
        if(!limit)
        {
            if(flag)dp[pos][md][2]=ans;
            else if(pre==1)dp[pos][md][1]=ans;
            else dp[pos][md][0]=ans;
        }
        return ans;
    }
    int solve(int x)
    {
        int len=0;
        while(x)
        {
            dig[++len]=x%10;
            x/=10;
        }
        return dfs(len,0,0,0,1);;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)>0)
        {
            memset(dp,-1,sizeof(dp));
            printf("%d
    ",solve(n));
        }
    }
    View Code
  • 相关阅读:
    大数的加法
    tomcat jdbc DataSource资料
    转 spring的事务传播
    jmeter系列七(Visualizer的TestElement-ResultCollector)
    jmeter系列六(processor)
    jmeter系列五(Config配置元素)
    jmeter系列四(Visualizer)
    jmeter系列三(控制器controller)
    jmeter系列二(jmeter engine相关)
    jmeter系列一(jmeter界面相关无TestBean)
  • 原文地址:https://www.cnblogs.com/lienus/p/4249050.html
Copyright © 2011-2022 走看看