bzoj1026

来源:互联网 发布:海信淘宝旗舰店 编辑:程序博客网 时间:2024/05/22 01:26

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 。

一道神奇的数位dp
关于数位dp分为两个过程
第一就是按位dp(简直就是模拟),这个特别水
第二就是求区间1,x内符合条件的数,很有意思

代码里有注释

按运行顺阅读……

#include<bits/stdc++.h>using namespace std;long long  f[11][11];//用f[i][j]表示第I位为j的windy数long long sum[11];//用来调试的……int shu[11];int l,r;int query(int x)//求1-x中的windy数{    memset(shu,0,sizeof(shu));    if(!x) return 0;    int k=0,ans=0;//k是位数    while(x)    {        shu[++k]=x%10;        x/=10;    }//将x按位拆开    for(register int i=1;i<=k-1;i++)    {        for(register int j=1;j<=9;j++)            ans += f[i][j];    }//1-1*10^k 内的windy数    for(int i=1;i<shu[k];i++)        ans+=f[k][i];    //10^k-(shu[k]-1)*10^k内的windy数    for(register int i = k-1;i>=1;i--)    {        for(register int j=0;j<shu[i];j++)            if(abs(j-shu[i+1])>=2)                ans+=f[i][j];            if(abs(shu[i+1]-shu[i])<2) break;            if(i==1) ans++;    }    //对于剩下的位重复一下上述操作    return ans;}int main(){    for(int i=0;i<=9;i++) f[1][i]=1;//赋初值    sum[1]=8;    for(int i=2;i<=10;i++)    {        for(int j=0;j<=9;j++)        {            for(int k=0;k<=9;k++)            if(abs(j-k)>=2) f[i][j]+=f[i-1][k];//模拟题意dp        }    }    scanf("%d%d",&l,&r);    int ans = query(r) - query(l - 1);    cout<<ans<<endl;}

CQzhangyu太强啦
CQzhangyuAKNOIP2017

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 面盆下水口漏水怎么办 水龙头接口处漏水怎么办 洗脸池脸盆渗水怎么办 老小区水管漏水怎么办 脸盆漏水口漏水怎么办 花洒水管漏水怎么办 空调水管断了怎么办 空调水管有声音怎么办 洗衣机洗桶漏水怎么办 全自动洗衣机排水管漏水怎么办 ppr塑料水管漏水怎么办 空调出水管漏了怎么办 pvc管接口漏水怎么办 外墙下水管漏水怎么办 污水管缝漏水怎么办 铁管有个沙眼怎么办 卫生间边缝漏水怎么办 老铸铁水管漏水怎么办 厕所下水道管子漏水怎么办 外墙雨水管堵了怎么办 商品房子地基下沉怎么办 楼下的管道漏水怎么办 铁水管开关漏水怎么办 排污管堵了怎么办 水龙头换不下来怎么办 全自动洗衣机水龙头漏水怎么办 供暖被停了怎么办 马桶上水慢怎么办视频 马桶水箱烂了怎么办 马桶拉屎总是堵怎么办 雨伞的伞珠掉了怎么办 雨伞的卡扣坏了怎么办 陶瓷汤勺掉马桶怎么办 下水道突然堵了怎么办 猫砂堵住下水道怎么办 洗碗下面堵了怎么办 泥沙堵了下水道怎么办 下水道有点堵了怎么办 下水道堵砂石了怎么办 水泥堵了下水道怎么办 水槽下水道堵了怎么办