• hdu 4602 Partition


    http://acm.hdu.edu.cn/showproblem.php?pid=4602

    输入 n 和 k

    首先 f(n)中k的个数 等于 f(n-1) 中 k-1的个数

    最终等于 f(n-k+1) 中 1 的个数

    舍 s(n) = f(n) + f(n-1) + ....+ f(1)

    则 f(n) = s(n) - s(n-1)

    由于 s(n) = s(n-1) + 2^(n-2) + s(n-1) = 2*(s(n-1)) + 2^(n-2)

                  = 2^(n-1) + (n-1)*2^(n-2)

           = (n+1)*2^(n-2)

    代码:

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<cmath>
    #include<set>
    #include<map>
    #include<stack>
    #include<vector>
    #include<algorithm>
    #include<queue>
    #include<stdexcept>
    #include<bitset>
    #include<cassert>
    #include<deque>
    #include<numeric>
    
    using namespace std;
    
    typedef long long ll;
    typedef unsigned int uint;
    const double eps=1e-12;
    const int INF=0x3f3f3f3f;
    const ll MOD=1000000007;
    ll power(ll x,ll y)
    {
        ll tmp=1;
        while(y)
        {
            if((y&1))
            tmp=(tmp*x)%MOD;
    
            x=(x*x)%MOD;
            y=y>>1;
        }
        return tmp;
    }
    int main()
    {
        //freopen("data.in","r",stdin);
        int T;
        cin>>T;
        while(T--)
        {
            ll n,m;
            cin>>n>>m;
            ll k=n-m+1;
            if(k<=0)
            {
                cout<<"0"<<endl;
                continue;
            }
            if(k==1)
            {
                cout<<"1"<<endl;
                continue;
            }
            if(k==2)
            {
                cout<<"2"<<endl;
                continue;
            }
            ll w1=(k+1)*power(2,k-2)%MOD;
            --k;
            ll w2=(k+1)*power(2,k-2)%MOD;
            cout<<(w1-w2+MOD)%MOD<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    Node.js 函数
    Node.js模块系统
    在Apache服务器上安装SSL证书
    Node.js Stream(流)--文件操作
    HTML5自带验证美化
    HTML5约束验证API
    Node.js Buffer(缓冲区)
    Python 练习:简单的购物车(二)
    Python 练习:简单的购物车
    Python 列表操作
  • 原文地址:https://www.cnblogs.com/liulangye/p/3209381.html
Copyright © 2020-2023  润新知