[BZOJ4475][JSOI2015]子集选取[推导]
题意
分析
显然可以看成一个位数为 \(n\) 的二进制数然后每一位分开考虑然后求和。最后的答案是 \(w^n\) 的形式。
考虑一个dp。
定义状态 \(f_{i}\) 表示选择了长度为 \(i\) 的三角的方案总数。
根据题意容易得到如果 \(A_{i,j}\) 可以为1,那么 \(A_{i-1,j}\ ,A_{i,j-1}\) 都要是1.
所以一行当中如果存在1的话一定是一段连续的前缀。
转移: \(f_i=1+\sum_{j=1}^{i-1}{f_j}\)。枚举 \(i-1\) 行有多少个1,然后不确定的部分是一个大小为 \(n-k+1\) 的三角形,同时没有任何限制。
根据递推式可以得到答案是 \(2^{nk}\)。
代码
#include<bits/stdc++.h>
using namespace std;
const int mod=1e9 + 7;
int n,k;
int Pow(int a,int b){
int res=1;
for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) res=1ll*res*a%mod;
return res;
}
int main(){
scanf("%d%d",&n,&k);
printf("%d\n",Pow(2,1ll*n*k%(mod-1)));
return 0;
}
[BZOJ4475][JSOI2015]子集选取[推导]的更多相关文章
- BZOJ4475[Jsoi2015]子集选取——递推(结论题)
题目描述 输入 输入包含一行两个整数N和K,1<=N,K<=10^9 输出 一行一个整数,表示不同方案数目模1,000,000,007的值. 样例输入 2 2 样例输出 16 可以发现 ...
- 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 ...
- BZOJ4475 JSOI2015子集选取(动态规划)
数据范围过大说明这个题和组合一点关系也没有,答案基本上肯定是ab的形式了.暴力打表感觉不太好写,找到当年的题面发现还有个样例是6 40 401898087,于是暴力找ab=401898087的数,发现 ...
- BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】
Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample In ...
- 【BZOJ4475】 [Jsoi2015]子集选取
题目描述 数据范围 \(1\leq N,K \leq 10^9\) \(solution\) 集合S中每个元素互不影响,不妨依次考虑其中一个元素在三角形中的出现情况 问题转化为一个\(0/1\)的三角 ...
- 【BZOJ4475】子集选取(计数)
题意: 思路: #include<cstdio> #include<cstdlib> #include<iostream> #include<algorith ...
- [题解] LuoguP6075 [JSOI2015]子集选取
传送门 ps: 下面\(n\)和\(k\)好像和题目里的写反了...将就着看吧\(qwq\) 暴力打个表答案就出来了? 先写个结论,答案就是\(2^{nk}\). 为啥呢? 首先你需要知道,因为一个集 ...
- bzoj 4475: [Jsoi2015]子集选取
233,扒题解的时候偷瞄到这个题的题解了,,GG 暴力发现是2^(nm),然后就是sb题了 #include <bits/stdc++.h> #define LL long long us ...
- 洛谷 P6075 [JSOI2015]子集选取
链接:P6075 前言: 虽然其他大佬们的走分界线的方法比我巧妙多了,但还是提供一种思路. 题意: %&¥--@#直接看题面理解罢. 分析过程: 看到这样的题面我脑里第一反应就是DP,但是看到 ...
随机推荐
- route命令使用
---恢复内容开始--- 利用route命令可以实现内外网同时访问 route 命令参数: route [-f] [-p] [Command [Destination] [mask Netmask] ...
- thinkphp导出csv文件,用表格输出excel
1.thinkphp导出csv文件 导出csv文件可能就那几行代码,今天有个问题困扰我好久,就是导出之后出现一些html代码,这个不应该,view里面是空的,controller中最后也没有$this ...
- 手动安装gradle
在学习andorid studio时发现编译超级无比的慢,网上有文说是因为gradle的原因,使用离线gradle可以大幅提高编译速度,准备尝试下看看如何.由于gradle的资料都是英文,而我又是英文 ...
- codeforces 348D Turtles
codeforces 348D Turtles 题意 题解 代码 #include<bits/stdc++.h> using namespace std; #define fi first ...
- 2、基于wsgiref模块DIY一个web框架
一 web框架 Web框架(Web framework)是一种开发框架,用来支持动态网站.网络应用和网络服务的开发.这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方 ...
- JavaScript的DOM操作获取元素的大小
通过 style 内联获取元素的大小 需要注意的是style 获取只能获取到行内 style 属性的 CSS 样式中的宽和高,如果有获取:如果没有则返回空. <!DOCTYPE html> ...
- iOS网络缓存的系统实现是一个烂尾工程
烂尾的原因是request的一致性比较接口没有开放出来.
- 【AT987】高橋君
题目 成爷爷一眼秒,\(tql!!!\) 多组询问,求 \[\sum_{i=0}^kC_{n}^i \] 发现\(k<=n\)啊,于是我们可以把一组询问抽象成一个区间\([k,n]\) 左指针的 ...
- Java并发编程--4.Executor框架
简介 Executor框架是启动,管理线程的API, 它的内部实现是线程池机制,它有很多好处,比如使任务提交和任务执行解耦合,防止this逃逸:它的主要API包括: Executor, Execut ...
- 最长公共子序列&最长公共子串
首先区别最长公共子串和最长公共子序列 LCS(计算机科学算法:最长公共子序列)_百度百科 最长公共子串,这个子串要求在原字符串中是连续的.而最长公共子序列则并不要求连续. 最长公共子序列: http ...