标签:target key car cte family RKE ase roman pac
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 23059 Accepted Submission(s): 8673
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define mod 1000000007
ll n,m;
ll dp[25][3];
int bit[25];
void init()
{
//dp初始值
dp[0][0]=1;
dp[0][1]=dp[0][2]=0;
for(int i=1;i<=20;i++)
{
dp[i][0]=dp[i-1][0]*10-dp[i-1][1];//除去49
dp[i][1]=dp[i-1][0];//首位为9
dp[i][2]=dp[i-1][2]*10+dp[i-1][1];//
}
}
ll solve(ll a)
{
int len=0;
while(a!=0)
{
bit[++len]=a%10;
a/=10;
}
bit[len+1]=0;//防止越位
ll ans=0;
bool flag=false;
for(int i=len;i>=1;i--)
{
ans+=dp[i-1][2]*bit[i];
if(flag) ans+=dp[i-1][0]*bit[i];
if(!flag&&bit[i]>4) ans+=dp[i-1][1];
if(bit[i+1]==4&&bit[i]==9)flag=true;
}
if(flag)ans++;//加上a
return ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
init();
int T;
cin>>T;
while(T--)
{
cin>>n;
cout<<solve(n)<<endl;
}
return 0;
}
标签:target key car cte family RKE ase roman pac
原文地址:https://www.cnblogs.com/zhgyki/p/9527145.html