数据范围过大说明这个题和组合一点关系也没有,答案基本上肯定是ab的形式了。暴力打表感觉不太好写,找到当年的题面发现还有个样例是6 40 401898087,于是暴力找ab=401898087的数,发现一组a=64 b=40,可以发现a=2n b=k,同时也符合第一组数据,于是就做完了。

  可以发现集合中的数字互不影响,对每个数字分别考虑。问题变为在一个全0三角形中填一些1,使得若ai,j=1,则ai-1,j=ai-1,j=1。

  容易发现每行为1的一定是一个前缀。设fi,j为第i行有j个1的方案数,则fi,j=Σfi-1,k (j<=k<=i-1),fi,i=1。归纳得fi,j=2i-j-1(i>j)。

  那么这个填法的数量是2k,每个数字都有这么多填法,答案即为2nk

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define P 1000000007
int n,m;
int ksm(int a,int k)
{
int s=;
for (;k;k>>=,a=1ll*a*a%P) if (k&) s=1ll*s*a%P;
return s;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj4475.in","r",stdin);
freopen("bzoj4475.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
n=read(),m=read();
cout<<ksm(ksm(,n),m);
return ;
}

最新文章

  1. MyEclipse无法删除项目下的文件
  2. 使用Xmanager远程连接CentOS6.4图形界面详解(图文)
  3. knockout之入门介绍
  4. MySQL登录报错&quot;Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)&quot;
  5. CentOS安装VSFTP及配置用户
  6. Application.Count.ToString()和Application[&quot;count&quot;].ToString()的区别
  7. MD5算法-爬虫学习(五)
  8. Jquery弹出窗口
  9. django初探-创建简单的博客系统
  10. Ubuntu 开启远程登录 SSH 的安装和配置
  11. [SQL]LeetCode262.行程和用户 | Trips and Users
  12. 如何正确使用Espresso来测试你的Android程序
  13. 【转】FluentAPI详细用法
  14. Spring(1)_Bean初始化
  15. 将H5页面的应用打包成APP(苹果和安卓版本)
  16. Java内存模型概念简单介绍,想深入自行百度
  17. SPLAY,LCT学习笔记(一)
  18. 晚期(运行期)优化---HotSpot虚拟机内的即时编译器
  19. SQL DATE_SUB 函数用法
  20. js中object的copy

热门文章

  1. java中的基本算法
  2. VMware下CentOS7安装后,还原虚拟网络后,敲ifconfig不显示局域网ip解决方法
  3. 转:Java子线程中的异常处理(通用)
  4. 【ISIS(中间系统到中间系统)路由链路状态信息协议初识】
  5. 在Pycharm中导入第三方模块库(诸如:matplotlib、numpy等)
  6. Centos7 搭建 hadoop3.1.1 集群教程
  7. python爬虫 爬取steam热销游戏
  8. Horner规则求多项式
  9. shell -- sed用法
  10. hibernate 各历史版本下载 spring各历史版本下载