题意

题目链接

分析

显然可以看成一个位数为 \(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]子集选取[推导]的更多相关文章

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

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

  2. 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 ...

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

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

  4. BZOJ4475: [Jsoi2015]子集选取【找规律】【数学】

    Description Input 输入包含一行两个整数N和K,1<=N,K<=10^9 Output 一行一个整数,表示不同方案数目模1,000,000,007的值. Sample In ...

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

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

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

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

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

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

  8. bzoj 4475: [Jsoi2015]子集选取

    233,扒题解的时候偷瞄到这个题的题解了,,GG 暴力发现是2^(nm),然后就是sb题了 #include <bits/stdc++.h> #define LL long long us ...

  9. 洛谷 P6075 [JSOI2015]子集选取

    链接:P6075 前言: 虽然其他大佬们的走分界线的方法比我巧妙多了,但还是提供一种思路. 题意: %&¥--@#直接看题面理解罢. 分析过程: 看到这样的题面我脑里第一反应就是DP,但是看到 ...

随机推荐

  1. Redis学习---Redis操作之Python连接

    PyCharm下的Redis连接 连接方式: 1. 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使 ...

  2. php5 Array 数组函数

    函数 描述 array() 创建数组. array_change_key_case() 把数组中所有键更改为小写或大写. array_chunk() 把一个数组分割为新的数组块. array_colu ...

  3. Memorize and recite an important historical speech

    Memorize and recite an important historical speech memorize['memәraiz]v.[亦作memorise] 记住, 记忆 historic ...

  4. 更改Request Parameters中的值

    1. 定义ParameterRequestWrapper 继承HttpServletRequestWrapper public class ParameterRequestWrapper extend ...

  5. win8中常见问题排查

    1. 无法使用内置管理员账户打开 1.1 启动组策略编辑器:运行中“gpedit.msc”,1.2 依次展开“计算机配置”--->“Windows设置”--->“安全设置”--->“ ...

  6. springboot 配置jpa启动报Error processing condition on org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration.pageableCustomizer

    springboot +gradle 配置jpa启动报Error processing condition on org.springframework.boot.autoconfigure.data ...

  7. 【转】iOS:AvPlayer设置播放速度不生效的解决办法

    现象: 项目有一个需求是实现视频的慢速播放,使用的是封装的AvPlayer,但是设置时发现比如设置rate为0.5,0.1,0.01都是一样的速度,非常疑惑.后来经过查找资料,发现iOS10对这个AP ...

  8. POJ 2774 Long Long Message [ 最长公共子串 后缀数组]

    题目:http://poj.org/problem?id=2774 Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total ...

  9. jenkins pipeline 配置

    pipeline { agent any stages { stage('Checkout') { steps { echo 'Checkout' checkout([$class: 'GitSCM' ...

  10. B. Our Tanya is Crying Out Loud

    http://codeforces.com/problemset/problem/940/B Right now she actually isn't. But she will be, if you ...