zoukankan      html  css  js  c++  java
  • Mountain Number FZU-2109数位dp

     1 #include<cstdio>
     2 int a[36],dp[36][10][2];//dp[i][j][k]第i数位的前一个数是j奇偶性是k的答案 
     3 int dfs(int p,int pre,bool jo,bool lim)
     4 {
     5     if(p<0)
     6         return 1;
     7     if(!lim&&dp[p][pre][jo]!=-1)
     8         return dp[p][pre][jo];
     9     int up=(lim ? a[p] : 9),ans=0;
    10     for(int i=0;i<=up;i++)
    11     {
    12         if(!jo&&i<=pre)
    13             ans+=dfs(p-1,i,1,lim&&i==a[p]);
    14         else if(jo&&i>=pre)
    15             ans+=dfs(p-1,i,0,lim&&i==a[p]);
    16     }
    17     if(!lim)
    18         dp[p][pre][jo]=ans;
    19     return ans;
    20 }
    21 int solve(int x)
    22 {
    23     int n=0;
    24     while(x)
    25     {
    26         a[n++]=x%10;
    27         x/=10;
    28     }
    29     return dfs(n-1,9,0,1);
    30 }
    31 int main()
    32 {
    33     int t,l,r;
    34     for(int i=0;i<=32;i++)
    35         for(int j=0;j<=9;j++)
    36             for(int k=0;k<2;k++)
    37                 dp[i][j][k]=-1;
    38     scanf("%d",&t);
    39     while(t--)
    40     {
    41         scanf("%d%d",&l,&r);
    42         printf("%d
    ",solve(r)-solve(l-1)); 
    43     }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    bzoj3675 [Apio2014]序列分割
    bzoj3206 [Apio2013]道路费用
    bzoj3205 [Apio2013]机器人
    bzoj4241 历史研究
    bzoj2821 作诗(Poetize)
    bzoj2724 [Violet 6]蒲公英
    bzoj2811 [Apio2012]Guard
    bzoj2809 [Apio2012]dispatching
    PHP 文字,图片水印,缩略图,裁切成小图(大小变小)
    PHP文件下载方式
  • 原文地址:https://www.cnblogs.com/LMCC1108/p/10805630.html
Copyright © 2011-2022 走看看