zoukankan      html  css  js  c++  java
  • 【CCF】有趣的数 数位dp

    【思路】

    dp[i][j]表示前i个数为第j种状态,考虑6种状态

    0: 出现且仅出现 2

    1: 出现且仅出现 2 0

    2: 出现且仅出现 2 3

    3: 出现且仅出现 2 0 1

    4: 出现且仅出现 2 0 3

    5: 出现且仅出现 2 0 1 3

    【AC】

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<string>
     5 #include<cmath>
     6 #include<algorithm>
     7 #include<queue>
     8 #include<map>
     9 using namespace std;
    10 const int mod=1e9+7;
    11 const int maxn=1e3+2;
    12 int dp[maxn][6];
    13 void pre(){
    14     memset(dp,0,sizeof(dp));
    15     dp[1][0]=1;
    16     for(int i=2;i<maxn;i++){
    17         dp[i][0]=1;
    18         dp[i][1]=((dp[i-1][1]*2)%mod+dp[i-1][0])%mod;
    19         dp[i][2]=(dp[i-1][2]+dp[i-1][0])%mod;
    20         dp[i][3]=(dp[i-1][1]+(dp[i-1][3]*2)%mod)%mod;
    21         dp[i][4]=((dp[i-1][1]+dp[i-1][2])%mod+(dp[i-1][4]*2)%mod)%mod;
    22         dp[i][5]=((dp[i-1][3]+dp[i-1][4])%mod+dp[i-1][5]*2%mod)%mod;
    23     }
    24 }
    25 int n;
    26 int main(){
    27     pre();
    28     while(~scanf("%d",&n)){
    29         printf("%d
    ",dp[n][5]);
    30     }
    31     return 0;
    32 } 
  • 相关阅读:
    【项目】项目1
    Python脚本1
    Python基础24
    Python基础23(习惯)
    01-Spring(1)
    12-Shell(2)
    11-Shell(1)
    10-搭建EE环境
    09-常用指令(3)
    08-常用指令(2)
  • 原文地址:https://www.cnblogs.com/itcsl/p/9194879.html
Copyright © 2011-2022 走看看