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

    题意:求区间内不包含4和连续62的数的个数

    分析:从高位向低位枚举,4的话,直接不枚举就行了,62用一个标志来记录上一个数是否是6,还要加一个表示上面是否达到上限,没有就可以枚举到9,否则枚举到liimt[len]

    入门题,这个模型以后会经常用到

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 int dp[8][2],d[8];
     5 
     6 int dfs(int len,int state,int f){
     7     if(!len)return 1;
     8     int& tmp=dp[len][state];
     9     if(!f&&tmp!=-1);
    10     int maxn=!f?9:d[len-1];
    11     int ret=0;
    12     for(int i=0;i<=maxn;i++){
    13         if(i==4||i==2&&state)continue;
    14         ret+=dfs(len-1,i==6,f&&i==maxn);
    15     }
    16     if(!f)tmp=ret;
    17     return ret;
    18 }
    19 
    20 int solve(int x){
    21     memset(dp,-1,sizeof(dp));
    22     int len=0;
    23     while(x>0){
    24         d[len++]=x%10;
    25         x/=10;
    26     }
    27     return dfs(len,0,1);
    28 }
    29 
    30 int main(){
    31     int x,y;
    32     while(cin>>x>>y&&x+y)
    33         cout<<solve(y)-solve(x-1)<<endl;
    34 
    35 
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    软工实践个人总结
    第03组 每周小结 (3/3)
    第03组 每周小结 (2/3)
    第03组 Beta冲刺 总结
    第03组 Beta冲刺 (5/5)
    第03组 Beta冲刺 (4/5)
    第03组 Beta冲刺 (3/5)
    第03组 Beta冲刺 (2/5)
    第03组 Beta冲刺 (1/5)
    Alpha冲刺 总结
  • 原文地址:https://www.cnblogs.com/jihe/p/5743539.html
Copyright © 2011-2022 走看看