zoukankan      html  css  js  c++  java
  • DP 水的问题

    假设的自然数N的K随机二进制表示是不相邻的两个相邻的数字。那么我们说这个数字是K好一些。

    乞讨L地点K十六进制数K的相当数量的数。

    例如K = 4。L = 2什么时候。整个K好一些11、13、20、22、30、31、33 共7一个。因为这个数目是非常大的,你把它输出1000000007取模后的值。


    有点数位DP的味道,这个要记得不相邻,可是自己跟自己能够。

    还有就是枚举的是往前插

    dp[i][j] 长i,j打头的个数。

    又有点递推味道。

    #include<algorithm>
    #include<iostream>
    #include<iterator>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<map>
    #define mem(a) memset(a,0,sizeof(a))
    #define inf (1<<30)
    #define mod 1000000007
    using namespace std;
    typedef long long ll;
    const int maxn=10+100;
    
    ll dp[20][20];
    int main()
    {
        int k,l;
        scanf("%d%d",&k,&l);
        for(int i=0;i<k;i++) dp[1][i]=1;
        for(int i=2;i<=l;i++)
            for(int j=1;j<k;j++)
            {
                dp[i][j]=dp[i-1][j];
                for(int m=0;m<j-1;m++)
                    dp[i][j]+=dp[i-1][m];
                for(int m=j+2;m<k;m++)
                    dp[i][j]+=dp[i-1][m];
                dp[i][j]%=mod;
            }
    
        ll ans=0;
        for(int i=1;i<k;i++)
            ans+=dp[l][i];
        if(k<=2) ans=0;
        cout<<ans<<endl;
        return 0;
    }


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Canvas基础讲义
    封装一个DivTag
    递归深拷贝
    构造函数的执行过程
    封装一个Ajax工具函数
    数组去重
    [js开源组件开发]js多选日期控件
    自己写的表格插件autotable
    复杂表格的树形结构的添加删除行div实现
    自制html5塔防游戏
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4651023.html
Copyright © 2011-2022 走看看