南阳理工oj252 数位dp

来源:互联网 发布:交管12123一直网络失败 编辑:程序博客网 时间:2024/06/09 20:46

标准的数位dp问题

#include<stdio.h>#include<string>#include<string.h>#include<algorithm>#include<map>#include<set>#include<queue>#include<vector>#include<iostream>#include<stack>#include<cmath>using namespace std;#define rep(n) for(int i=0;i<(n);i++)#define Rep(n) for(int i=1;i<=(n);i++)#define check(x) cout<<x<<" "<<endl;#define print(x) cout<<x<<endl;int f[50][3];//f[i][0]//代表的是i位中没有11//f[i][1]//无11,但是最高位为1//f[i][2]//有11int n; void init(int n){  memset(f,0,sizeof(f));  f[0][0]=1;  for(int i=1;i<=42;i++)  {    f[i][0]=f[i-1][0]*2-f[i-1][1];    f[i][1]=f[i-1][0]-f[i-1][1];    f[i][2]=f[i-1][2]*2+f[i-1][1];   }   cout<<f[n][0]<<endl;} int main(void){      int t;   cin>>t;   while(t--)   {     cin>>n;     init(n);   }   return 0;}


0 0
原创粉丝点击