zoukankan      html  css  js  c++  java
  • CF1236B Alice and the List of Presents |数学

    题意翻译
    有nn种物品和mm个背包,每种物品有无限个,现将若干个物品放到这些背包中,满足:

    1、每个背包里不能出现相同种类的物品(允许有空背包);

    2、在所有的mm个背包中,每种物品都出现过。

    求方案数,对10^9+7取模。


    转载至 风华正茂

    这不是一道水题吗?

    尽管比赛时推了20min,我太蒟了。

    假如这道题目没有“每种物品都出现过”的限制,那么它的答案就是 2^nm

    那么加上这个限制呢,每种物品必须要放,只用将每种物品的方案减一即可,也就是 2^m-1

    所以用乘法原则得到 ans=(2^m-1)^n

    快速幂都会吧

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const int mod=1e9+7;
    #define int long long
    int n,m;
    inline int ksm(int x,int y){
    	int ans=1;
    	while(y){
    		if(y&1)ans=(ans*x)%mod;
    		x=x*x%mod;
    		y>>=1;
    	}
    	return ans;
    }
    signed main(){
    	cin>>n>>m;
    	printf("%lld
    ",ksm(ksm(2,m)-1,n));
    }
    
  • 相关阅读:
    MySQL 对于千万级的大表要怎么优化?
    Spring Cloud中文社区
    什么是QPS,PV
    http://www.rabbitmq.com/documentation.html
    redis
    MySQL分区表
    linux命令综合
    Python-MRO
    Python3 错误和异常
    装饰器
  • 原文地址:https://www.cnblogs.com/naruto-mzx/p/11768022.html
Copyright © 2011-2022 走看看