4 条题解
-
1
#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define LL long long const int N = 1e6+10; const int INF = 0x3f3f3f3f; #define mod 1e9+7 int a[20],dp[20][2]; int dfs(int pos,int pre,int limit){ if(pos==-1)return 1; if(!limit&&dp[pos][pre6]!=-1)return dp[pos][pre6]; int tmp=0; int up=limit?a[pos]:9; for(int i=0;i<=up;i++){ if(pre6&&i2)continue; if(i4)continue; tmp+=dfs(pos-1,i,limit&&ia[pos]); } if(!limit)dp[pos][pre==6]=tmp; return tmp; } int solve(int x){ int pos=0; while(x){ a[pos++]=x%10; x/=10; } return dfs(pos-1,-1,true); } int main(){ //freopen("","r",stdin); //freopen("","w",stdout); int ri,le; while(~scanf("%d %d",&ri,&le)&&ri+le){ memset(dp,-1,sizeof(dp)); printf("%d \n",solve(le)-solve(ri-1)); } return 0; }
信息
- ID
- 483
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 5
- 标签
- 递交数
- 88
- 已通过
- 33
- 上传者