zoukankan      html  css  js  c++  java
  • 【bzoj1026】windy数

    1026: [SCOI2009]windy数

    Time Limit: 1 Sec  Memory Limit: 162 MB
    Submit: 6214  Solved: 2773
    [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
     
     
    【题解】
    这题类似于hdu2089,但是这题不能出现前导零,注意处理这点。
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstdlib>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<algorithm>
     8 using namespace std;
     9 int f[11][11],digit[11];
    10 inline int read()
    11 {
    12     int x=0,f=1;  char ch=getchar();
    13     while(!isdigit(ch))  {if(ch=='-')  f=-1;  ch=getchar();}
    14     while(isdigit(ch))  {x=x*10+ch-'0';  ch=getchar();}
    15     return x*f;
    16 }
    17 void pre()
    18 {
    19     for(int i=0;i<=9;i++)  f[1][i]=1;
    20     for(int i=2;i<=10;i++)
    21         for(int j=0;j<=9;j++)
    22             for(int k=0;k<=9;k++)
    23                 if(abs(j-k)>=2)  f[i][j]+=f[i-1][k];
    24 }
    25 int ask(int x)
    26 {
    27     int len=0,ans=0;
    28     while(x)  {digit[++len]=x%10; x/=10;}
    29     for(int i=1;i<len;i++)
    30         for(int j=1;j<=9;j++)
    31             ans+=f[i][j];
    32     for(int i=1;i<digit[len];i++)  ans+=f[len][i];
    33     for(int i=len-1;i;i--)
    34     {
    35         for(int j=0;j<digit[i];j++)  if(abs(j-digit[i+1])>=2)  ans+=f[i][j];
    36         if(abs(digit[i]-digit[i+1])<2)  break;
    37     }
    38     return ans;
    39 }
    40 int main()
    41 {
    42     //freopen("cin.in","r",stdin);
    43     //freopen("cout.out","w",stdout);
    44     int l=read(),r=read();
    45     pre();
    46     printf("%d
    ",ask(r+1)-ask(l));
    47     return 0;
    48 }
  • 相关阅读:
    主线程——main线程
    进程和线程概念及原理
    抓取网贷之家的数据爬虫
    感知哈希算法的java实现
    最短路径—Dijkstra算法和Floyd算法
    关于图像特征提取
    hive学习之WordCount单词统计
    pig、hive以及hbase的作用
    zookeeper入门知识
    hadoop文件系统浅析
  • 原文地址:https://www.cnblogs.com/chty/p/5981569.html
Copyright © 2011-2022 走看看