BZOJ3329 Xorequ
来源:互联网 发布:中国的参政党知乎 编辑:程序博客网 时间:2024/06/06 08:56
x^3x=2x
即x^2x=3x
即x^2x=x+2x
即x与2x的为1的位没有交
即x没有相邻的为1的位
那么第一位二进制数位DP,第二问矩乘即可
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<ctime>#include<algorithm>#include<iomanip>#include<cmath>#include<vector>#include<queue>#include<stack>#include<bitset>#include<set>#include<map>using namespace std;#define MAXN 1010#define MAXM 1010#define INF 1000000000#define eps 1e-8#define MOD 1000000007#define ll long longstruct mat{ll x[3][3];mat(){memset(x,0,sizeof(x));}friend mat operator *(mat x,mat y){int i,j,k;mat z;for(i=0;i<3;i++){for(j=0;j<3;j++){for(k=0;k<3;k++){(z.x[i][j]+=x.x[i][k]*y.x[k][j])%=MOD;}}}return z;}};ll n;ll f[MAXN],g[MAXN],mi[MAXN];ll ans=0;int L;mat A,B,C;int main(){int i;f[0]=g[0]=mi[0]=1;for(i=1;i<=62;i++){mi[i]=mi[i-1]<<1;f[i]=g[i-1];g[i]=f[i-1]+g[i-1];}int tmp;scanf("%d",&tmp);while(tmp--){scanf("%lld",&n);ans=0;for(L=62;~L;L--){if(mi[L]<=n){break;}}bool flag=0;for(L--;~L;L--){if(!flag&&(n&mi[L])){ans+=g[L];}if((n&mi[L])&&(n&mi[L+1])){flag=1;}ans+=f[L];}if(!flag){ans++;}printf("%lld\n",ans);A=B=C=mat();for(i=0;i<3;i++){B.x[i][i]=1;}C.x[1][0]=1;C.x[0][1]=1;C.x[1][1]=1;C.x[0][2]=1;C.x[2][2]=1;A.x[0][0]=1;A.x[0][1]=1;A.x[0][2]=1;while(n){if(n&1){B=B*C;}C=C*C;n>>=1;}A=A*B;printf("%lld\n",A.x[0][2]);}return 0;}/**/
0 0
- bzoj3329 Xorequ
- BZOJ3329 Xorequ
- BZOJ3329 Xorequ
- BZOJ3329 Xorequ(数位DP)
- 【bzoj3329】Xorequ 矩阵乘法+数位DP
- 【bzoj3329】【Xorequ】【数位dp+矩阵乘法】
- 数位dp+矩阵乘法 【bzoj3329】Xorequ
- BZOJ3329 Xorequ(数位dp+矩阵快速幂)
- bzoj 3329: Xorequ
- bzoj 3329: Xorequ
- bzoj 3329: Xorequ
- bzoj 3329: Xorequ 数位dp
- 【BZOJ 3329】[数位dp]Xorequ
- 【数位DP】CF55D BZOJ3329 HDU4352 SGU390 HDU5519
- BZOJ 3329 Xorequ 数位DP+矩阵乘法
- 3329: Xorequ 数位DP+矩阵乘法
- BZOJ_P3329 Xorequ(矩阵乘法+动态规划)
- bzoj 3329: Xorequ 数位dp+矩阵乘法
- tomcat无论如何无法访问到root目录中的应用
- javaweb学习(3):JDBC进阶之路
- Edit Distance
- studio快捷键
- ios测试推送工具介绍
- BZOJ3329 Xorequ
- php类型约束
- Python 装饰器
- Hibernate与 MyBatis的比较
- Nginx搭建反向代理服务器过程详解
- Redis调优--多队列网卡中断
- Java学习笔记(二十七):关于System.getProperty("user.dir")
- 关于使用属性动画来动态改变控件的布局位置
- 下拉菜单