博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ4870/LOJ2143][Shoi2017]组合数问题
阅读量:5109 次
发布时间:2019-06-13

本文共 700 字,大约阅读时间需要 2 分钟。

题目链接:

神仙思维题。

直接推式子是找不到什么性质的,我们来考虑一下这个式子的意义:

\(nk\)个物品中,选\(x(x\mod{k}\equiv r)\)个物品的方案数

那么可以DP:设\(f[i][j]\)表示前\(i\)个物品,选\(x(x\mod{k}\equiv j)\)个物品的方案数

则有:\(f[i][j]=f[i-1][(j-1)\mod{k}]+f[i-1][j]\)

那么就可以矩阵乘法优化了。

时间复杂度 \(O(k^2\log n)\)

注意特判\(k=1\)的情况

代码:

#include 
#include
#define rint register inttypedef long long ll;int n,p,k,r;struct Matrix{ int n,m,a[55][55]; inline Matrix(int ns,int ms){n=ns,m=ms;memset(a,0,sizeof a);} inline Matrix operator*(const Matrix &o)const { Matrix Res(n,o.m); for(rint i=0;i
>=1,g=g*g)if(b&1)f=f*g; printf("%d\n",f.a[0][r]); return 0;}

转载于:https://www.cnblogs.com/LanrTabe/p/11496613.html

你可能感兴趣的文章
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
Section 1.2 dualpal
查看>>
存储(硬件方面的一些基本术语)
查看>>
Dithering-视觉的奇特现象
查看>>
观察者模式
查看>>
转】MyEclipse使用总结——MyEclipse文件查找技巧
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Java-文件上传和下载
查看>>
Memory and Trident(CodeForces 712B)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
投资策略 ——摘自凤凰网
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
spring boot 整合 云之讯 demo
查看>>
CoolBlog开发笔记第4课:数据库模型设计
查看>>
翻译:给19岁有志青年的建议 Advice for ambitious 19 year olds
查看>>
DenyHosts 阻止SSH暴力攻击
查看>>
java001-Helloworld
查看>>