zoukankan      html  css  js  c++  java
  • 不要62

    杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。
    杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。
    不吉利的数字为所有含有4或62的号码。例如:
    62315 73418 88914
    都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。
    你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。
     
    Input
    输入的都是整数对n、m(0<n≤m<1000000),如果遇到都是0的整数对,则输入结束。
     
    Output
    对于每个整数对,输出一个不含有不吉利数字的统计个数,该数值占一行位置。
     
    Sample Input
    1 100 0 0
     
    Sample Output
    80
     
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 int n,m;
     8 int num[40];
     9 
    10 int dp[40][2];
    11 int DFS(int pos,int pre,int sta,bool F){
    12     if(pos==-1) return 1;
    13     if(!F&&dp[pos][sta]!=-1) return dp[pos][sta];
    14     
    15     int maxv=F?num[pos]:9;
    16     int ans=0;
    17     for(int i=0;i<=maxv;i++){
    18         if((pre==6&&i==2)||i==4) continue;
    19         ans=ans+DFS(pos-1,i,i==6,F&&i==maxv);
    20     }
    21     
    22     if(!F) dp[pos][sta]=ans;
    23     return ans;
    24 }
    25 
    26 int Solve(int temp){
    27     int cnt=0;
    28     while(temp){
    29         num[cnt++]=temp%10;
    30         temp/=10;
    31     }
    32     return DFS(cnt-1,0,0,true);
    33 }
    34 
    35 int main()
    36 {    
    37     while(~scanf("%d%d",&n,&m)){
    38         if(n==0&&m==0) break;
    39         memset(dp,-1,sizeof(dp));
    40         cout<<Solve(m)-Solve(n-1)<<endl;
    41     } 
    42     return 0;
    43 }
    44 
    45 /*
    46 int dp[40];
    47 int DFS(int pos,int pre,bool F){
    48     if(pos==-1) return 1; 
    49     //if(!F&&dp[pos]!=-1) return dp[pos];
    50     
    51     int maxv=F?num[pos]:9;
    52     int ans=0;
    53     for(int i=0;i<=maxv;i++){
    54         if((pre==6&&i==2)||i==4) continue;
    55         ans=ans+DFS(pos-1,i,F&&i==maxv);
    56     }
    57     
    58     //if(!F) dp[pos]=ans;
    59     return ans;
    60 }
    61 
    62 int Solve(int temp){
    63     if(temp==0) return 1;
    64     
    65     int cnt=0;
    66     while(temp){
    67         num[cnt++]=temp%10;
    68         temp/=10;
    69     }
    70     return DFS(cnt-1,0,true);
    71 }
    72 */
  • 相关阅读:
    【洛谷P3374】【模板】树状数组 1
    【vijos1460】拉力赛
    NOIp2013货车运输
    【codevs1519】过路费
    【codevs1036】商务旅行
    【codevs2370】小机房的树
    【洛谷P3398】仓鼠找sugar
    【洛谷P2912】[USACO08OCT]牧场散步Pasture Walking
    sql语句绑定方法
    单实例asm,修改主机名和ip地址后的重配置+集群重新配置GI
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/7536387.html
Copyright © 2011-2022 走看看