zoukankan      html  css  js  c++  java
  • 洛谷 P2657[SCOI2009]windy 数

    数位DP板子题。

    DP[i][j]记录到第i位前一位数字是j的数字数。

    下附代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int dp[20][15];
     4 int dim[20];
     5 int dfs(int x,int st,int jb){
     6     if (!x) return 1;
     7     if (!jb && dp[x][st]!=-1) return dp[x][st];
     8     int maxn=9,ret=0;
     9     if (jb) maxn=dim[x];
    10     for (int i=0; i<=maxn; i++){
    11         if (abs(st-i)<2) continue;
    12         if (st==11 && i==0){
    13             ret+=dfs(x-1,11,(jb==1 && i==maxn));
    14         }
    15         else ret+=dfs(x-1,i,(jb==1 && i==maxn));
    16     }
    17     if (!jb) return dp[x][st]=ret;
    18     return ret;
    19 }
    20 int main(){
    21     string a,b;
    22     cin>>a>>b;
    23     memset(dp,-1,sizeof(dp));
    24     for (int i=0; i<a.length(); i++){
    25         dim[a.length()-i]=a[i]-'0';
    26     }
    27     dim[1]-=1;
    28     int j=1;
    29     while (dim[j]<0){
    30         dim[j]+=10;
    31         dim[j+1]-=1;
    32         j++;
    33     }
    34     int l=dfs(a.length(),11,1);
    35     for (int i=0; i<b.length(); i++){
    36         dim[b.length()-i]=b[i]-'0';
    37     }    
    38     int r=dfs(b.length(),11,1);
    39     printf("%d",r-l);
    40 }
    View Code
  • 相关阅读:
    app后端session共享问题
    nignx
    dubbo
    lucene&solr-day1
    SSM框架整合,以CRM为例子
    SpringMVC入门第二天
    HBase集群搭建
    SecureCRT的Home+End+Del键映射
    记一次让人的喷血的排错经历
    基于docker搭建mysql集群
  • 原文地址:https://www.cnblogs.com/i-caigou-TT/p/14368615.html
Copyright © 2011-2022 走看看