BSOJ1165【BZOJ3329】 Xorequ

题目

分析

显然两问的解决办法不一样。

对于第一问,显然可以数位\(dp\),然后直接做就没了。

对于第二问,我们可以挖掘性质,发现上面等式成立的条件就是这个数的每一个二进制位为1的位置都不相邻。

于是我们考虑根据二进制的每一位来dp,那么很容易发现 \(dp[i+1]=dp[i]+dp[i-1]\) (表示如果这一位取1就是\(dp[i-1]\),取0就是\(dp[i]\)

斐波那契数列,直接矩阵快速幂。

代码

数位dp部分还不会写,所以鸽了。

posted @ 2021-07-21 20:35  __Anchor  阅读(237)  评论(0)    收藏  举报