[BZOJ3209]花神的数论题
2015-08-07 11:28
357 查看
原题地址
数位DP…
感觉已经被数位DP虐习惯了…
数位DP…
感觉已经被数位DP虐习惯了…
#include <cstdio> typedef long long ll; const ll N=101; const ll TOMOD=10000007; ll a,len,Ans=1; ll b ,ans ; ll f ; void cal(ll x,ll tag){ if(x==1){ if(b[x]) ans[tag+1]++; ans[tag]++; return ; } if(!b[x]){ cal(x-1,tag); return ; } for(ll i=0;i<=x-1;i++) ans[i+tag]+=f[x-1][i]; cal(x-1,tag+1); } ll qpow(ll x,ll p){ if(!p) return 1; ll y=qpow(x,p>>1); y=(y*y)%TOMOD; if(p&1) y=(y*x)%TOMOD; return y; } int main(){ scanf("%lld",&a); while(a){ b[++len]=a&1; a>>=1; } f[1][0]=f[1][1]=1; for(ll i=2;i<=len;i++){ for(ll j=0;j<=len;j++){ f[i][j]=f[i-1][j]; if(j) f[i][j]+=f[i-1][j-1]; } } cal(len,0); for(ll i=1;i<=len;i++) Ans=(Ans*qpow(i,ans[i]))%TOMOD; printf("%lld\n",Ans); return 0; }
相关文章推荐
- Failed to create the host-only adapte
- MySql获取各种日期
- java固定种子随机数预测
- hdoj 5015 构造矩阵+矩阵快速幂
- Maven实战(八)——常用Maven插件介绍(下)
- ARM QT移植详细步骤教程
- mountpoint
- broker
- Linux 数据库学习的准备工作---win通过ssh访问ubuntu
- sql之left join、right join、inner join的区别
- Vagrant is attempting to interface with the UI in a way that requires a TTY
- 北大POJ_1079_Ratio
- RAND函数和SRAND函数
- nologin
- codeforces#314C&567C Geometric Progression
- hibernate缓存机制原理
- UML建模学习(一)
- 由家里网络故障谈起
- listview复用 数据重复 id错乱问题已解决
- js代码,qq空间秒赞,2015/8/7号实测