zoukankan      html  css  js  c++  java
  • 【数位DP】bzoj1026: [SCOI2009]windy数

    1026: [SCOI2009]windy数

    Time Limit: 1 Sec  Memory Limit: 162 MB
    Submit: 4163  Solved: 1864
    [Submit][Status][Discuss]

    Description

    windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道,在A和B之间,包括A和B,总共有多少个windy数?

    Input

    包含两个整数,A B。

    Output

    一个整数。

    Sample Input

    【输入样例一】
    1 10
    【输入样例二】
    25 50

    Sample Output

    【输出样例一】
    9
    【输出样例二】
    20

    HINT

    【数据规模和约定】

    100%的数据,满足 1 <= A <= B <= 2000000000 。


      和hdu2089貌似没有什么区别。。

      

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cmath>
     5 
     6 using namespace std;
     7 
     8 long long f[15][15];
     9 
    10 void DP()
    11 {
    12     for(int i=0;i<=9;i++)
    13     f[1][i]=1;
    14     for(int i=2;i<=12;i++)
    15     for(int j=0;j<=9;j++)
    16         for(int kk=0;kk<=9;kk++)
    17         if(fabs(j-kk)>=2)
    18             f[i][j]+=f[i-1][kk];
    19 }
    20 
    21 long long get(long long x)
    22 {
    23     int len=0,num[15];
    24     long long res=0;
    25     while(x)
    26     {
    27     num[++len]=x%10;
    28     x/=10;
    29     }
    30     for(int i=1;i<num[len];i++)
    31     res+=f[len][i];
    32     for(int i=1;i<=len-1;i++)
    33     for(int j=1;j<=9;j++)
    34         res+=f[i][j];
    35     for(int i=len-1;i>=1;i--)
    36     {
    37     for(int j=0;j<num[i];j++)
    38         if(fabs(j-num[i+1])>=2)res+=f[i][j];
    39     if(fabs(num[i]-num[i+1])<2)break;
    40     }
    41     return res;
    42 }
    43 
    44 int main()
    45 {
    46     long long l,r;
    47     DP();
    48     scanf("%lld%lld",&l,&r);
    49     printf("%lld",get(r+1)-get(l));
    50 }
    View Code
  • 相关阅读:
    MySql常用数据操作
    使用requests+BeaBeautiful Soup爬取妹子图图片
    抓取猫眼电影排行
    Exec执行拼接字符串时遇到的问题及Sql执行函数时需要注意的事项
    c#小知识点
    MVVM 与 sql
    Dictionary
    sql表信息查询
    XAML特殊字符
    编程细节
  • 原文地址:https://www.cnblogs.com/tuigou/p/4832754.html
Copyright © 2011-2022 走看看