转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<iostream>
#define LL long long
#define MOD 1000000007
#define mp(a,b) make_pair(a,b)
using namespace std;
//长度,是否有7,数字和%7,数字%7
LL s1[20][2][7][7],s2[20][2][7][7],cnt[20][2][7][7];
int bit[20],len;
LL fac[20]={1};
pair<pair<int,int>,int> dfs(int len,int a,int b,int c,int limit){if(cnt[len][a][b][c]!=-1&&!limit) return mp(mp(cnt[len][a][b][c],s1[len][a][b][c]),s2[len][a][b][c]);if(!len){if(!a&&b&&c) cnt[len][a][b][c]=0LL;else cnt[len][a][b][c]=1LL;s1[len][a][b][c]=s2[len][a][b][c]=0LL;return mp(mp(cnt[len][a][b][c],s1[len][a][b][c]),s2[len][a][b][c]);}int up=limit?bit[len]:9;LL tcnt=0LL,ts1=0LL,ts2=0LL;for(int i=0;i<=up;i++){int nl=len-1,na=(a||i==7),nb=(b+i)%7,nc=(c*10+i)%7;LL f=(fac[len-1]*i)%MOD;pair<pair<int,int>,int> pre=dfs(nl,na,nb,nc,limit&&(i==up));ts1=(ts1+pre.first.second+pre.first.first*f)%MOD;ts2=(ts2+pre.second+(f*f%MOD)*pre.first.first+2*f*pre.first.second)%MOD;tcnt=(tcnt+pre.first.first)%MOD;}  if(!limit){cnt[len][a][b][c]=tcnt;s1[len][a][b][c]=ts1;s2[len][a][b][c]=ts2;}return mp(mp(tcnt,ts1),ts2);
}
LL sum(LL n){LL a=n,b=n+1,c=2*n+1;int x=3,y=2;if(a%x==0) a/=x,x=1;if(a%y==0) a/=y,y=1;  if(b%x==0) b/=x,x=1;if(b%y==0) b/=y,y=1;if(c%x==0) c/=x,x=1;if(c%y==0) c/=y,y=1;a%=MOD;b%=MOD;c%=MOD;return (a*b%MOD)*c%MOD;
}
LL slove(LL n){len=0;LL m=n;while(n){bit[++len]=n%10;n/=10;}return (sum(m)-dfs(len,0,0,0,1).second)%MOD;
}
int main(){for(int i=1;i<20;i++)fac[i]=(fac[i-1]*10)%MOD;int t;LL l,r;memset(cnt,-1,sizeof(cnt));scanf("%d",&t);while(t--){scanf("%I64d%I64d",&l,&r);//cout<<slove(r)<<" "<<slove(l-1)<<endl;printf("%I64d\n",((slove(r)-slove(l-1))%MOD+MOD)%MOD);}return 0;
}

HDU 4507 吉哥系列故事——恨7不成妻(数位DP)相关推荐

  1. HDU 4507 吉哥系列故事――恨7不成妻 数位DP

    吉哥系列故事--恨7不成妻 Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  2. HDU - 4507 吉哥系列故事——恨7不成妻(数位dp)

    题目链接:点击查看 题目大意:给出闭区间[l,r],求出区间内与7不沾边的数的平方和 与7有关的条件: 整数中某一位是7: 整数的每一位加起来的和是7的整数倍: 这个整数是7的整数倍: 题目分析:抛去 ...

  3. HDU-4507 吉哥系列故事――恨7不成妻 (数位dp)

    J - 吉哥系列故事――恨7不成妻 HDU - 4507 题解:数位dp 和简单的数位dp不同,这道题要算所有合法数的平方和 考虑到一个数可以写成X=ΣAi*Pi,(其中Ai为X每一位的值,Pi=10 ...

  4. HDU 4507 吉哥系列故事——恨7不成妻 详解(变态数位DP)

    Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: ...

  5. HDU - 4507 吉哥系列故事――恨7不成妻 (数位DP)

    Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 ...

  6. HDU 4507 吉哥系列故事――恨7不成妻 (平方拆解 + *数位DP 总结)

    单身!  依然单身!  吉哥依然单身!  DS级码农吉哥依然单身!  所以,他生平最恨情人节,不管是214还是77,他都讨厌!    吉哥观察了214和77这两个数,发现:  2+1+4=7  7+7 ...

  7. hdu4507吉哥系列故事——恨7不成妻 (数位dp)

    Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: ...

  8. HDU4507 吉哥系列故事――恨7不成妻 数位DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4507 题意:求[L,R](1 <= L <= R <= 10^18)区间内和7无关的 ...

  9. 吉哥系列故事——恨7不成妻(数位 DP)

    吉哥系列故事--恨7不成妻 ∑i=1n(pre+suc)2∑i=1npre2+suc2+2×pre×sucn×pre2+∑suc2+2×pre∑suc\sum_{i = 1} ^{n}(pre + s ...

最新文章

  1. 怎么还不见2005的中文版出来的?
  2. 麻烦的.text字段
  3. js中的preventDefault
  4. 数据库性能优化—分库分表
  5. 基于pygtk的linux有道词典
  6. mysql mvcc 隔离级别_关于 Mysql 四种隔离级别中 Lock 和 MVCC 的关系
  7. html tab切换jquery,jQuery版Tab标签切换
  8. LINUX的一些简单命令 时间修改
  9. json学习之三:JSONArray的应用
  10. c语言 void fun(float *p1),C语言程序设计试题1
  11. android各种组件的监听器
  12. git pull问题解决error: cannot lock ref
  13. 初二生态系统思维导图_初中生物生态系统知识点思维导图
  14. Ubuntu16.04火狐浏览器问题汇总
  15. AIDA64 Extreme Edition(硬件检测)多国语言绿色特别版
  16. flutter ios打包_Flutter 的Android 、iOS 打包
  17. QQ被盗后,如何找回好友
  18. druid数据源下 sqlserver 出现 对象名 'xxx' 无效
  19. NC65开发使用UAP-STUDIO6.5发布WebService
  20. 生成Excel的” 源代码

热门文章

  1. Laya Air游戏开发模式之MVC模式(核心篇)
  2. k8s pod 详述
  3. 荐书 | 手牵手一步两步望着天,看星星一颗两颗连成线
  4. QSqlQueryModel搭配QTableView使用卡死问题
  5. 【PHP-网页内容抓取】抓取网页内容的两种常用方法
  6. 蓝桥杯单片机——串口通信1(11)
  7. 基础篇:String字符串之截取、分割、替换
  8. 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)
  9. Oracle多个数据库备份和还原,oracle 多数据库还原
  10. 母婴市场备受亲睐,电商运营需把握要点