zoukankan      html  css  js  c++  java
  • hdu3652 B-number

    链接

    题意求能够整除和包含13的数字。

    这个比较简单,保留余数及1,然后标记前面是否出现过13就行。

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<vector>
     7 #include<cmath>
     8 #include<queue>
     9 #include<set>
    10 using namespace std;
    11 #define N 100000
    12 #define LL long long
    13 #define INF 0xfffffff
    14 const double eps = 1e-8;
    15 const double pi = acos(-1.0);
    16 const double inf = ~0u>>2;
    17 LL n,dp[22][15][2][2];
    18 int d[22];
    19 LL dfs(int i,bool e,int r,bool o,bool p)
    20 {
    21     if(i==-1)
    22     {
    23         return r==0&&p;
    24     }
    25     if(!e&&dp[i][r][o][p]!=-1)
    26     return dp[i][r][o][p];
    27     int j;
    28     int mk = e?d[i]:9;
    29     LL ans = 0;
    30     for(j = 0; j <= mk ; j++)
    31     {
    32         if(p)
    33         ans+=dfs(i-1,e&&j==mk,(r*10+j)%13,0,1);
    34         else
    35         {
    36             if(o&&j==3)
    37             ans+=dfs(i-1,e&&j==mk,(r*10+j)%13,0,1);
    38             else if(j==1)
    39             ans+=dfs(i-1,e&&j==mk,(r*10+j)%13,1,0);
    40             else
    41             ans+=dfs(i-1,e&&j==mk,(r*10+j)%13,0,0);
    42         }
    43     }
    44     return e?ans:dp[i][r][o][p]=ans;
    45 }
    46 LL cal(LL x)
    47 {
    48     int g=0;
    49     while(x)
    50     {
    51         d[g++] = x%10;
    52         x/=10;
    53     }
    54     return dfs(g-1,1,0,0,0);
    55 }
    56 int main()
    57 {
    58     memset(dp,-1,sizeof(dp));
    59     while(cin>>n)
    60     {
    61         cout<<cal(n)<<endl;
    62     }
    63     return 0;
    64 }
    View Code
  • 相关阅读:
    js函数的Json写法
    Bootstrap3和Bootstrap4区别
    Unicode编码是什么
    保留字是什么
    范仁义js课程---5、js字面量和变量
    什么是脚本语言
    ECMAScript 版本
    TortoiseGit上传代码到GitHub
    Android Studio快捷键
    Android 适配
  • 原文地址:https://www.cnblogs.com/shangyu/p/3683003.html
Copyright © 2011-2022 走看看