需要推下平方和的式子。。维护个数,和,平方和。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define mod 1000000007LL
using namespace std;
long long bit[],tab[],ret=,t,l,r;
struct pnt
{
long long val1,val2,val3;
pnt (long long val1,long long val2,long long val3):val1(val1),val2(val2),val3(val3) {}
pnt () {}
}dp[][][];
void get_bit(long long x)
{
ret=;
while (x) {bit[++ret]=x%;x/=;}
}
void get_table()
{
tab[]=;
for (long long i=;i<=;i++) tab[i]=tab[i-]*%mod;
for (long long i=;i<=;i++)
for (long long j=;j<=;j++)
for (long long k=;k<=;k++)
{
dp[i][j][k].val1=dp[i][j][k].val2=dp[i][j][k].val3=-;
}
return;
}
pnt comb(pnt x,pnt y,long long pos,long long num)
{
long long r1=,r2=,r3=;
r1=((y.val3*tab[*(pos-)]%mod*num%mod*num%mod+(*(y.val2*tab[pos-]%mod)%mod*num)%mod)%mod+y.val1)%mod;
r2=(y.val3*num%mod*tab[pos-]%mod+y.val2)%mod;
r3=y.val3;
x.val1=(x.val1+r1)%mod;
x.val2=(x.val2+r2)%mod;
x.val3=(x.val3+r3)%mod;
return x;
}
pnt dfs(long long pos,long long val1,long long val2,bool flag)
{
if (!pos)
{
if (val1 && val2) return pnt(,,);
else return pnt(,,);
}
if ((!flag) && (~dp[pos][val1][val2].val1)) return dp[pos][val1][val2];
pnt ans=pnt(,,);long long up=flag?bit[pos]:;
for (long long i=;i<=up;i++)
{
if (i==) continue;
ans=comb(ans,dfs(pos-,(val1*+i)%,(val2+i)%,flag&&i==up),pos,i);
}
if (!flag) dp[pos][val1][val2]=ans;
return ans;
}
long long work(long long x)
{
get_bit(x);
return dfs(ret,,,).val1;
}
int main()
{
scanf("%I64d",&t);get_table();
for (long long i=;i<=t;i++)
{
scanf("%I64d%I64d",&l,&r);
printf("%I64d\n",(work(r)-work(l-)+mod)%mod);
}
return ;
}

HDU 4507 吉哥系列故事——恨7不成妻的更多相关文章

  1. HDU - 4507 - 吉哥系列故事——恨7不成妻(数位DP,数学)

    链接: https://vjudge.net/problem/HDU-4507 题意: 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都 ...

  2. HDU 4507 吉哥系列故事――恨7不成妻(数位DP+结构体)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4507 题目大意:如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关 1.整数中某一位是7: ...

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

    题意: 如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关: 1.整数中某一位是7: 2.整数的每一位加起来的和是7的整数倍: 3.这个整数是7的整数倍: 给定一个区间[L,R],问在此区 ...

  4. HUD 4507 吉哥系列故事——恨7不成妻

    传送门 三个限制都可以数位 $dp$ , $dfs$ 是维护当前位,之前各位总和模 $7$ 意义下的值,之前填的数模 $7$ 意义下的值,是否贴着限制 主要现在求的是各个合法数的平方的和,比较恶心 开 ...

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

    吉哥系列故事——恨7不成妻 http://acm.hdu.edu.cn/showproblem.php?pid=4507 Time Limit: 1000/500 MS (Java/Others)   ...

  6. [HDU4507]吉哥系列故事——恨7不成妻

    [HDU4507]吉哥系列故事--恨7不成妻 试题描述 单身!依然单身!吉哥依然单身!DS级码农吉哥依然单身!所以,他生平最恨情人节,不管是214还是77,他都讨厌!吉哥观察了214和77这两个数,发 ...

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

    吉哥系列故事--恨7不成妻 传送门 Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥 ...

  8. Day9 - J - 吉哥系列故事——恨7不成妻 HDU - 4507

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

  9. 吉哥系列故事――恨7不成妻 HDU - 4507

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

随机推荐

  1. 再谈Bellman-Ford

    这几天学校女生节,挺累的,感觉还是挺好玩的,前几天看了一下最短路,Bellman-fort算法果然比较厉害,今天又参考了刘汝佳的两本书,有了一点新的认识. 废话不说,先上代码: #include &l ...

  2. JAVA-Semaphore信号灯-可实现维护自身线程访问数

    import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex ...

  3. [问题2014S02] 解答

    [问题2014S02] 解答  首先注意到: 两个实系数多项式 \(f(x),g(x)\) 互素当且仅当 \(f(x),g(x)\) 在复数域 \(\mathbb{C}\) 上没有共公根, 当且仅当结 ...

  4. VBA中练习ADO:ActiveX Data Object

    前期绑定,要先添加引用---"Microsoft ActiveX Data Objects 6.1" ADO学习的权威参考可点击:w3school ADO简单理解:是几个Activ ...

  5. Java开发中经典的小实例-(100能被3整除的数打印出来)

    public class Test21 {    public static void main(String[] args) {        // TODO Auto-generated meth ...

  6. package

    1.设计package原因 理解基目录的概念,思考jre加载class的顺序,如果没有package会怎么样?有了之后又是怎么样..? 主要:确保类名的唯一性. 次要:方便组织代码 2.怎样访问\导入 ...

  7. js修改:before、:after的内容

    一.js控制伪元素content内容 二. --------------2016-7-20 13:34:03-- source:[1]js如何控制伪元素的内容

  8. 关于php语言的使用! ------php语言与JavaScript的使用 方法是相似

    <script type="text/javascript"> </script>--js与PHP同是一种弱类型语言 弱类型语言只是不显示表现  定义变量时 ...

  9. ANSI C与GNU C

    GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的.它的目标是创建一套完全自由的操作系统.它在编写linux的时候自己制作了一个标准成为 GNU C标准.A ...

  10. 用substr()截取中文出现乱码的解决方法

    截取中文字符串时出现乱码(使用substr()函数) 程序一:PHP截取中文字符串方法 function msubstr($str, $start, $len) {    $tmpstr = &quo ...