• BZOJ 3028 食物 生成函数


    Description

    明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应
    该带一些什么东西。理所当然的,你当然要帮他计算携带N件物品的方案数。他这次又准备带一些受欢迎的食物,
    如:蜜桃多啦,鸡块啦,承德汉堡等等当然,他又有一些稀奇古怪的限制:每种食物的限制如下:
    承德汉堡:偶数个
    可乐:0个或1个
    鸡腿:0个,1个或2个
    蜜桃多:奇数个
    鸡块:4的倍数个
    包子:0个,1个,2个或3个
    土豆片炒肉:不超过一个。
    面包:3的倍数个
    注意,这里我们懒得考虑明明对于带的食物该怎么搭配着吃,也认为每种食物都是以‘个’为单位(反正是幻想嘛
    ),只要总数加起来是N就算一种方案。因此,对于给出的N,你需要计算出方案数,并对10007取模。

    Input

    输入一个数字N,1<=n<=10^500

    Output

    如题 

    Sample Input

    输入样例1
    1
    输入样例2
    5

    Sample Output

    输出样例1
    1
    输出样例2
    35
     
     
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    const LL mod = 10007;
    LL qsm(LL a, LL n){
        LL ret=1;
        while(n){
            if(n&1)ret=ret*a%mod;
            a=a*a%mod;
            n>>=1;
        }
        return ret;
    }
    LL n;
    LL read()
    {
        LL x=0;char ch=getchar();
        while (ch<'0'||ch>'9') ch=getchar();
        while (ch>='0'&&ch<='9') x=(x*10+ch-'0')%mod,ch=getchar();
        return x;
    }
    int main()
    {
        n = read();
        printf("%lld
    ",(n*(n+1)%mod*(n+2)%mod*qsm(6,mod-2)%mod)%mod);
        return 0;
    }
    
  • 相关阅读:
    DFS
    关于memset

    SpringCloud(六)Ribbon负载均衡
    每日算法练习(2020-1-27)
    SpringCloud(五)Eureka Server高可用集群与常见问题
    SpringCloud(四)Eureka服务注册与发现
    SpringCloud(三)常用系统架构技术讲解
    Redis(八)
    Redis(七)
  • 原文地址:https://www.cnblogs.com/spfa/p/7405964.html
Copyright © 2020-2023  润新知