JZOJ 4058. 【JSOI2015】子集选取
来源:互联网 发布:淘宝运营策划案 编辑:程序博客网 时间:2024/06/05 09:40
Description
Input
Output
Sample Input
输入1:
2 2
输入2:
6 40
Sample Output
输出1:
16
输出2:
401898087
Data Constraint
Solution
设
f(n,k) 为输入为n,k 的答案。由于对于每一个元素,选取过程都是独立的,
即元素
i 不会影响元素j 的选取那么可以得到
f(n,k)=f(1,k)n 。下面来推导
f(1,k) 。单个元素的选取的特点是:选取 1 的位置是连续的,并会形成阶梯状。
如下图:(当
k=6 的情况:深色的是被选取的部分)
设
Ai 为第 i 列最后选取的行是什么。若从第 1 列到第 m 列均存在格子被选取,那么将满足:
Ai+1≤Ai(1≤i≤m) 设
Gi,j 表示在第 i 列最后选取的是第 j 行的方案数,那么得到递推式:Gi,j=∑p=jkGi−1,p 观察可得:
Gi,j=Gi−1,j+Gi,j+1 推导一下会发现这是组合数的形式!
由于元素可以一个也不选,也可以在任意位置结束,所以:
f(1,k)=1+∑Gi,j=2k 综合可得:
f(n,k)=2n∗k 则时间复杂度为
O(logn) !
Code
#include<cstdio>using namespace std;const int mo=1e9+7;int n,k;inline long long ksm(long long x,int y){ long long s=1; while(y) { if(y&1) s=s*x%mo; x=x*x%mo; y>>=1; } return s;}int main(){ scanf("%d%d",&n,&k); printf("%lld",ksm(ksm(2,k),n)); return 0;}
1 0
- JZOJ 4058. 【JSOI2015】子集选取
- 【JSOI2015】【JZOJ 4058】子集选取
- BZOJ4475 [Jsoi2015]子集选取
- [JZOJ4058]【JSOI2015】子集选取
- bzoj4475【JSOI2015】子集选取
- 4475: [Jsoi2015]子集选取
- bzoj 4475: [Jsoi2015]子集选取
- BZOJ 4475: [Jsoi2015]子集选取
- bzoj 4475: [Jsoi2015]子集选取 数学
- BZOJ 4475: [Jsoi2015]子集选取 快速幂
- bzoj 4475: [Jsoi2015]子集选取 找规律
- [BZOJ4475][JSOI2015]子集选取(DP+结论)
- 【JSOI2015】【JZOJ 4063】非诚勿扰
- JZOJ 4061. 【JSOI2015】字符串树
- 【JSOI2015】【JZOJ 4064】套娃
- pandas 选取子集的操作
- 【JZOJ 4841】平衡的子集
- JSOI2015
- 目前在机器学习领域异构计算得到重视,GPU占据主流位置,Fpga初现端倪,不知fpga在机器学习的前景如何?
- 新年的第十天
- CSS实现的几款不错的菜单栏
- 160 - 9 Andrnalin.2
- HDU 5616Jam's balance
- JZOJ 4058. 【JSOI2015】子集选取
- Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径)问题
- spring3.x第十章 Spring的事务管理难点剖析
- 洛谷 P1736 创意吃鱼法
- 进行异构计算时,GPU,FPGA,CPU,DSP这些平台各有什么特点?如何选择?
- qt MVC(一)
- 愿浮萍乘风破浪
- 什么是信元交换
- input边框的兼容问题