Description

Input

输入包含一行两个整数N和K,1<=N,K<=10^9

Output

一行一个整数,表示不同方案数目模1,000,000,007的值。

Sample Input

2 2

Sample Output

16


思路

首先因为每个元素都是独立的,所以可以分开考虑

然后如果只有一个元素,可以考虑\(dp_{i}\)表示i行i列的方案数

第i+1行如果放了前k个,那么前面的前k个都必须要放,所以只剩下一个\(dp_{i-1-k}\)

然后归纳一下发现就是\(2^k\)

所以答案是\(2^{nk}\)


#include<bits/stdc++.h>

using namespace std;

const int Mod = 1e9 + 7;

int mul(int a, int b) {
return 1ll * a * b % Mod;
} int fast_pow(int a, int b) {
int res = 1;
while (b) {
if (b & 1) res = mul(a, res);
b >>= 1;
a = mul(a, a);
}
return res;
} int main() {
int n, k; cin >> n >> k;
cout << fast_pow(fast_pow(2, n), k);
return 0;
}

BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】的更多相关文章

  1. BZOJ4475 JSOI2015子集选取(动态规划)

    数据范围过大说明这个题和组合一点关系也没有,答案基本上肯定是ab的形式了.暴力打表感觉不太好写,找到当年的题面发现还有个样例是6 40 401898087,于是暴力找ab=401898087的数,发现 ...

  2. BZOJ4475[Jsoi2015]子集选取——递推(结论题)

    题目描述 输入 输入包含一行两个整数N和K,1<=N,K<=10^9 输出 一行一个整数,表示不同方案数目模1,000,000,007的值. 样例输入 2 2 样例输出 16   可以发现 ...

  3. BZOJ4475 [Jsoi2015]子集选取

    Description 有一些\(\{1\dots n\}\)的子集\(A_{i,j}, 1\leq j\leq i\leq k\)共\(\frac{k(k+1)}2\)个,满足\(A_{i,j}\s ...

  4. [BZOJ4475][JSOI2015]子集选取[推导]

    题意 题目链接 分析 显然可以看成一个位数为 \(n\) 的二进制数然后每一位分开考虑然后求和.最后的答案是 \(w^n\) 的形式. 考虑一个dp. 定义状态 \(f_{i}\) 表示选择了长度为 ...

  5. [CSP-S模拟测试]:数学课(找规律+数学)

    题目传送门(内部题145) 输入格式 从$math.in$读入数据. 第一行两个数,为$n,q$.接下来$q$行每行一个数$m$,询问大小为$m$的$A$一共有多少个. 输出格式 输出答案到$math ...

  6. 【BZOJ4475】 [Jsoi2015]子集选取

    题目描述 数据范围 \(1\leq N,K \leq 10^9\) \(solution\) 集合S中每个元素互不影响,不妨依次考虑其中一个元素在三角形中的出现情况 问题转化为一个\(0/1\)的三角 ...

  7. Codeforces 1091D New Year and the Permutation Concatenation 找规律,数学 B

    Codeforces 1091D New Year and the Permutation Concatenation https://codeforces.com/contest/1091/prob ...

  8. 【BZOJ4475】子集选取(计数)

    题意: 思路: #include<cstdio> #include<cstdlib> #include<iostream> #include<algorith ...

  9. [题解] LuoguP6075 [JSOI2015]子集选取

    传送门 ps: 下面\(n\)和\(k\)好像和题目里的写反了...将就着看吧\(qwq\) 暴力打个表答案就出来了? 先写个结论,答案就是\(2^{nk}\). 为啥呢? 首先你需要知道,因为一个集 ...

随机推荐

  1. Angular2,Springboot,Zuul,Shiro跨域CORS请求踩坑实录

    前言:前后端分离,业务分离,网关路由等已经成为当下web application开发的流行趋势.前端以单页面路由为核心的框架为主体,可以单独部署在nodejs或nginx上.后端以springboot ...

  2. cygwin install git

    Installation with Cygwin If you're comfortable with Cygwin, then use it to install git, ssh, wget an ...

  3. OAuth简介(包含简明使用教程)

    SSO:用户一次登陆后在多个系统免登录. 博客gem 'doorkeeper'  https://i.cnblogs.com/EditPosts.aspx?postid=9255973 OAuth:用 ...

  4. 关于vue Unexpected identifier 问题

    vue对于es6虽然自带babel转换 但是在index.html文件中并不会发生转换 因此在index.html中使用新的语法会导致低版本浏览器不识别代码因此报出Unexpected identif ...

  5. char,varchar与text类型的区别和选用

    (1)char: 它是定长格式的,但是长度范围是0~255. 当你想要储存一个长度不足255的字符时,mysql会用空格来填充剩下的字符.因此在读取数据时,char类型的数据要进行处理,把后面的空格去 ...

  6. java并发编程:线程安全管理类--原子操作类--AtomicLongArray

    1.类 AtomicLongArray public class AtomicLongArray extends Object implements Serializable 可以用原子方式更新其元素 ...

  7. forget words out1

    forget word 1● information 2● infomation 3● mation 4● pavilion 5● river 6● mouth 7● fish 8● lick 9● ...

  8. jsp jsp常用指令

    jsp指令是为jsp引擎设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分. jsp中的指令 page指令 include指令 taglib指令 jsp指令的基本语法 ...

  9. C#托管代码是什么?非托管代码是什么?

    C#托管代码是什么? 托管代码(Managed Code)实际上就是中间语言(IL)代码.代码编写完毕后进行编译,此时编译器把代码编译成中间语言(IL),而不是能直接在你的电脑上运行的机器码.程序集( ...

  10. Gradle 完整指南(Android)

    Gradle 的编译周期 在解析 Gradle 的编译过程之前我们需要理解在 Gradle 中非常重要的两个对象.Project和Task. 每个项目的编译至少有一个 Project,一个 build ...