题目:https://www.luogu.org/problemnew/show/P2822

发现 k 都是一样的。所以可以设dp[ i ][ j ]表示 n<=i,m<=j 的答案。发现它就像一个二维平面,所以可以dp[ i ][ j ]=dp[ i-1 ][ j ]+dp[ i ][ j-1 ]-dp[ i-1 ][ j-1 ]+[ c[ i ][ j ]%k==0 ];

先写了记录每个数的阶乘含多少个k,然后看减掉之后还有没有k。但这样没考虑k的因数组成k的情况。所以应该把k质因数分解,看减掉的该因数个数与k里的该因数个数的大小关系。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,M=1e4+;
int t,k,n[M],m[M],mxn,mxm,mx,a[N][],dp[N][N],cnt,zs[],nm[];
int rdn()
{
int ret=;char ch=getchar();
while(ch>''||ch<'') ch=getchar();
while(ch>=''&&ch<='') ret=(ret<<)+(ret<<)+ch-'',ch=getchar();
return ret;
}
int main()
{
t=rdn();k=rdn();
for(int i=;i<=t;i++)
n[i]=rdn(),m[i]=rdn(),mxn=max(mxn,n[i]),mxm=max(mxm,m[i]);
mx=max(mxn,mxm);
int tmp=k;
for(int i=;i<=tmp;i++)
if(tmp%i==)
{
zs[++cnt]=i;
while(tmp%i==)tmp/=i,nm[cnt]++;
}
for(int i=;i<=mx;i++)
for(int j=,s=i;j<=cnt;j++,s=i)
while(s) s/=zs[j],a[i][j]+=s;//数i含有多少第j个质因数
// for(int i=1;i<=mx;i++) printf("a[%d]=%d\n",i,a[i]);
for(int i=;i<=mxn;i++)
{
for(int j=;j<=mxm&&j<i;j++)
{
dp[i][j]=dp[i][j-]+dp[i-][j]-dp[i-][j-];
bool flag=;
for(int o=,d;o<=cnt;o++)
{
d=a[i][o]-a[j][o]-a[i-j][o];
if(d<nm[o]){flag=;break;}
}
dp[i][j]+=(!flag);
// printf("dp[%d][%d]=%d(ai-aj-a(i-j)=%d)\n",i,j,dp[i][j],
// a[i]-a[j]-a[i-j]);
}
for(int j=i;j<=mxm;j++) dp[i][j]=dp[i][j-];
// printf("dp[%d][%d]=%d\n",i,j,dp[i][j]);
}
for(int i=;i<=t;i++)
printf("%d\n",dp[n[i]][m[i]]);
return ;
}

最新文章

  1. 如何在windows下的Python开发工具IDLE里安装其他模块?
  2. 浅谈人脸检测之Haar分类器方法
  3. Winfrom中ListBox绑定List数据源更新问题
  4. [转载] 高流量大并发Linux TCP 性能调优
  5. AngularJS理论基础
  6. DOM----comment类型
  7. MAC下的Intellij IDEA常用快捷键
  8. Linux下巧用cat与EOF实现文件的替换和追加
  9. [零] JavaIO入门简介 程序设计语言 为什么需要IO库
  10. RDay1-Problem 1 A
  11. Visual Studio Code create the aps.net core project(Visual Studio Code 创建asp.net core项目)
  12. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码
  13. 使用Java+Kotlin双语言的LeetCode刷题之路(一)
  14. Go语言之高级篇beego框架之Controller
  15. 【SqlServer】解析SqlServer中的事务
  16. VS VC 读取 INI文件
  17. javascript的循环使用
  18. 使用 IIS 过程中遇到的一些问题
  19. 3x3开窗中值滤波器的FPGA硬件实现
  20. jsp页面:js方法里嵌套java代码(是操作数据库的),如果这个js 方法没被调用,当jsp页面被解析的时候,不管这个js方法有没有被调用这段java代码都会被执行?

热门文章

  1. Sumdiv(较难数学题)
  2. Nginx结合GeoIP库
  3. vue前戏ES6
  4. 安装Eclipsemaven插件
  5. python -virtualenvwrapper 切换不同的python版本
  6. 在Nginx/Openresty中启用http2支持
  7. linux 5-sort,uniq,tar,split
  8. 阿里云CentOS7安装Docker
  9. linux sort按照指定列排序
  10. html ---- web sql 例子