[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,但是看到 ...
随机推荐
- Echarts 曲线数少于图例数解决方法
在上一篇文章 Echarts 多曲线“断点”问题解决方法 中说到了Angular 项目中要使用 Echarts 的方法. 说明了自己解决当“每一条曲线的横坐标不相同”时,在各条曲线上,它们的值采用数组 ...
- Smarty常用函数
1 .include_once语句: 引用文件路径,路径必需正确. eg:include_once("smarty/Smarty.class.php"); 2 $smarty= ...
- PHP中对用户身份认证实现两种方法
用户在设计和维护站点的时候,经常需要限制对某些重要文件或信息的访问.通常,我们可以采用内置于WEB服务器的基于HTTP协议的用户身份验证机制. 当访问者浏览受保护页面时,客户端浏览器会弹出对话 ...
- js 正则验证
Html 代码如下: <table> <tr> <td>匹配正整数:</td> <td><input type="text& ...
- codewars-7kyu:Sum of the first nth term of Series
Task: Your task is to write a function which returns the sum of following series upto nth term(param ...
- ZOJ 3983 Crusaders Quest(思维题)
C - Crusaders Quest Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu S ...
- HihoCoder - 1336 二维数状数组(单点更新 区间查询)
You are given an N × N matrix. At the beginning every element is 0. Write a program supporting 2 ope ...
- centos安装telnet
安装环境:CentOS 6.4 上篇已经讲述了memcached的安装,现在要测试Memcached功能的时候,需要使用到telnet服务.于是就有了本篇. 一.安装telnet 1.检测t ...
- Redis全方位讲解--主从复制
前言 前面介绍了redis持久化和容灾备份,这篇会介绍redis主从复制和redis持久化在主从复制中的一些应用.因为本人没有那么多服务器或机器,所以这里主要介绍下如何在docker容器中搭建主从复制 ...
- uboot的静默编译、指定编译目录、多核编译
最近在移植uboot,发现每次看源代码,都有编译留下的.o 等各种文件,在百度中,找到了解决方法. 在顶层的Makefile文件中,大概80多行,有这么几句注释, # kbuild supports ...