博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fzyzojP1876 天津——泥人张
阅读量:6456 次
发布时间:2019-06-23

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

 

思路一:

考虑lucas定理,mod 4意义下,每一个组合数都不能是0

所以,把n变成四进制数,然后数位dp即可

f[i][0/1][0/1/2/3]表示,前i位,有没有限制,mod 4 的值是0/1/2/3

发现,4=2^2,所以如果出现一个0或者两个2都可以

所以,简化一下:f[i][0/1][0/1/2]表示,前i位,有没有限制,2的次幂出现了0,1,2次,(来一个0直接相当于出现2个2)

最后答案是:f[len][0/1][2]

len大概不到5000

但是dp要高精(可以压18位)

原来的n也可以压位(压18位也可以的)

复杂度:O(3000/18*len+5000*2*3*3000/18)这个是极限

有一定的常数

卡一卡应该能过。

大错特错,4不是质数,不能用LUCAS定理

 

思路二:

上面那个太暴力~~~

这个复杂度很低了:

 

瓶颈是2^(s(m))

压位高精的话,再用上高精快速幂,s(m)极限是10000大概(也就是len)

总复杂度:O(300*300*log(10000))这个还是最坏情况。

 

转载于:https://www.cnblogs.com/Miracevin/p/10356703.html

你可能感兴趣的文章
iptables 学习笔记
查看>>
打印机故障转移集群之七:部署打印机集群
查看>>
DELL R420 IPMI 操作手册
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
request所有
查看>>
邮件服务器(一)——邮件服务器工作原理
查看>>
解决 post params urlsearchparams 手机不支持问题
查看>>
Java 成员变量初始化
查看>>
yum服务器的架设
查看>>
手机指纹识别,你所不知道的东西
查看>>
zend easy伪静态实现
查看>>
Zend Framework 2 : 在项目中配置memcached 缓存。
查看>>
一个设计全面的网页,包括jui以及滚动验证等
查看>>
X-Header在七号信令中如何使用 <1>
查看>>
《飞机大战》安卓游戏开发源码(二)
查看>>
软件测试工程师主要职责和要求
查看>>
信息系统审计(IT审计)
查看>>
在vue的属性中绑定了一个方法
查看>>
centos7.0的几个新特性
查看>>