当前位置: 首页 > news >正文

企业网站开发外包公司/2023新一轮病毒叫什么名字

企业网站开发外包公司,2023新一轮病毒叫什么名字,提供微网站制作电话,营销型网站建设制作多少钱LGTB新买了一张n*m的矩(桌)阵(子),他想给某些1*1的小矩形染色,使得染色之后,原矩阵的每个n*n的子矩阵中都包含恰好k个被染色了的小矩形。他想知道有多少种染色方案能让他满足上述要求。因为答案肯呢个很大,请输出方案数膜1e97的值…

LGTB新买了一张n*m的矩(桌)阵(子),他想给某些1*1的小矩形染色,使得染色之后,原矩阵的每个n*n的子矩阵中都包含恰好k个被染色了的小矩形。他想知道有多少种染色方案能让他满足上述要求。因为答案肯呢个很大,请输出方案数膜1e9+7的值

输入

输入第一行包含三个整数n,m,k,意义如题面所示

对于15%的数据,1≤n*m≤20,n≤m

对于40%的数据,1≤n≤10,n≤m≤1000

对于100%的数据,1≤n≤100,n≤m≤1e18,0≤k≤n²

输出

输出包含1个整数,代表LGTB的方案数

样例

样例输入

5 6 1

样例输出

45

时间限制

3s

样例说明

 

样例如图所示,如果在灰色区域染一个格子,有20种方案。如果在两边的白色格子各染一个格子,有25种方案。共45种方案。

 

 

由于题目描述中m最大是1e18,所以肯定要用到快速幂。

首先我们可以发现,如果把一列捆在一起处理的话,那么为了满足题意,第i列一定与第i+n列的染色个数是相同的。

那么考虑DP[i][j],代表每一个整个块(如1~n为一块,n+1~2*n为一块,因为他们每一列的染色个数相同)中处理了前i列,此时染了j个颜色的方案数。

那么如果考虑下一块的话,设下一块染色个数为kk,则增加的方案数就为C[n][k]^t[i](t[i]为i位置存在的总个数)

于是C[n][k]用杨辉三角求出,然后在快速幂求C[n][k]^t[i]。

这里会发现,有可能最后要多出一点,也就是部分块,那么他们的列数要+1。

处理完过后,就可以直接DP了。时间复杂度O(n^4)

 

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 const int maxn=105;
 7 const long long mod=1e9+7;
 8 int n,k;long long m;
 9 long long c[maxn][maxn];
10 long long dp[maxn][maxn*maxn];
11 long long w[2][maxn];long long re;
12 long long qe(long long a,long long b)
13 {
14     long long qwe=1;
15     while(b)
16     {
17         if(b&1)qwe*=a;
18         if(qwe>mod)qwe%=mod;
19         b>>=1;a=a*a;
20         if(a>mod)a%=mod;
21     }
22     return qwe;
23 }
24 void init()
25 {
26     c[0][0]=1;
27     for(int i=1;i<=100;i++)
28     for(int j=0;j<=i;j++)
29     {
30         c[i][j]=c[i-1][j]+c[i-1][j-1];
31         if(c[i][j]>mod)c[i][j]%=mod;
32     }
33     long long qwe=m/n;
34     re=m%n;
35     for(int i=0;i<=n;i++)
36     {
37         w[0][i]=qe(c[n][i],qwe);
38         w[1][i]=qe(c[n][i],qwe+1);
39     }
40     return ;
41 }
42 int main()
43 {
44     freopen("table.in","r",stdin);
45     freopen("table.out","w",stdout);
46     scanf("%d%I64d%d",&n,&m,&k);
47     init();
48     dp[0][0]=1;
49     long long wer=0;
50     for(int i=0;i<n;i++)//
51     for(int j=0;j<=n*i;j++)
52     for(int kk=0;kk<=min(n,k);kk++)
53     {
54         if(i<re)//多了一列 
55         wer=w[1][kk];
56         else wer=w[0][kk];
57         
58         dp[i+1][j+kk]+=wer*dp[i][j]%mod;
59         dp[i+1][j+kk]%=mod;
60     }
61     printf("%I64d",dp[n][k]);
62     return 0;
63 }

 

 

 

转载于:https://www.cnblogs.com/937337156Zhang/p/6070381.html

http://www.lbrq.cn/news/1579609.html

相关文章:

  • 田园综合体建设网站/百度精准获客平台
  • 杨凯做网站/怎么优化标题和关键词排名
  • 无锡高端网站制作/绍兴百度seo排名
  • 单页面网站制作技术/搜索引擎整合营销
  • 请人帮忙做淘宝网站多少钱/营销推广文案
  • 无锡朝阳网站推广/百度推广营销
  • 怎样用php做动态网站/网络媒体发稿
  • 大地保险网站/东莞seo外包公司
  • 基础微网站开发可信赖/seo 优化
  • wordpress 修改发帖时间/附子seo
  • 网站更换内容/seo难不难学
  • 网站备案证明/互联网推广方案
  • 工具类网站如何做排名/今日头条新闻最新疫情
  • 小说类型网站怎么做/全案网络推广公司
  • 长沙网站建设王道下拉惠/高端企业网站建设
  • 濮阳做网站推广/杭州seo关键词优化公司
  • 企业网站备案时间/网络营销方式有哪些?
  • 做网站的结论/seo网站推广软件 快排
  • 网上给别人做设计的网站/网站建设报价单
  • 白城市住房建设局网站/营销策划师
  • 程序员做交友网站/商城小程序开发哪家好
  • 河南省汝州市文明建设网站/南宁seo排名外包
  • 松江泖港网站建设/百度关键词代做排名
  • 应用制作下载/怀来网站seo
  • 安徽省建设行业质量与安全协会网站/怎么开一个网站平台
  • 网站服务器多少钱一月/网络营销的优缺点
  • 企业网站设计经典案例/seo实战培训王乃用
  • 教育类网站如何做/合肥seo网站管理
  • 免费b2b网站大全免费黄页/seo课程总结
  • 专业的网站建设公/长沙县网络营销咨询
  • 石英加速度计如何实现高精度测量?
  • 【力扣494】目标和
  • MySQL-锁
  • 爬虫和数据分析相结合案例
  • 强化学习常用数据集
  • 请求报文和响应报文(详细讲解)