acwing 恨7不成妻

简介: acwing 恨7不成妻

恨7不成妻

注意完全平方公式的推导

#include <iostream>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define endl "\n"
#define LOCAL
#define pb push_back
#define int    long long
int l,r;
int a[40];
int mod=1e9+7;
struct node
{
    int c;
    int sum;
    int sumr;
};
node f[40][12][12];
int pos[40];
node dfs(int len,int s,int k,int flag)//s每一位数位和取余7,这个整数取余7
{
    if(!len)
    {
        return (node){(s&&k),0,0};
    }
    if(!flag&&f[len][s][k].c!=-1) return f[len][s][k];
    int up=flag?a[len]:9;
    node ans={0,0,0};
    for(int i=0;i<=up;i++)
    {
        if(i==7) continue;
        node te=dfs(len-1,(s+i)%7,(k*10+i)%7,flag&&i==a[len]);
        ans.c=(ans.c+te.c)%mod;
        ans.sum=((ans.sum+te.sum)%mod+pos[len-1]*te.c%mod*i%mod)%mod;
        ans.sumr=(ans.sumr+te.sumr+2*i%mod*pos[len-1]%mod*(te.sum)%mod+i*pos[len-1]%mod*i%mod*pos[len-1]%mod*te.c%mod)%mod;
    }
    if(!flag) f[len][s][k]=ans;
    return ans;
}
int cal(int x)
{
    int len=0;
    memset(f,-1,sizeof(f));
    while(x)
    {
        a[++len]=x%10;
        x/=10;
    }
    return dfs(len,0,0,1).sumr;
}
void solve()
{
    cin>>l>>r; 
      cout<<(cal(r)-cal(l-1)+mod)%mod<<endl;
}
signed main() {
std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    //#ifdef LOCAL
    //freopen("data.in.txt","r",stdin);
    //freopen("data.out.txt","w",stdout);
    //#endif
    int __ = 1;
    pos[0]=1;
    for(int i=1;i<=40;i++)
    {
        pos[i]=pos[i-1]*10%mod;
    } 
    cin>>__;
    while (__--)
        {
            solve();
        }
    return 0;
}


目录
相关文章
|
存储 安全 网络安全
如何识别和防范网络钓鱼攻击?
通过以上方法的综合运用,可以有效识别和防范网络钓鱼攻击,降低遭受网络安全威胁的风险,保护个人信息和财产安全。
855 68
|
10月前
|
自然语言处理 DataWorks 数据挖掘
使用DataWorks Notebook实现智能图片标注,给你的图片加个“注释”
本文介绍如何使用DataWorks Notebook结合视觉识别模型RAM和自然语言处理模型BERT实现多模态图片标注,为智能内容生成和多模态数据分析的广泛应用提供支持。
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
455 1
|
存储 前端开发 JavaScript
"Angular与AWS Amplify的神奇之处:如何用云端连接技术让你的项目一鸣惊人?"
【8月更文挑战第31天】在现代软件开发中,云端连接的前端应用已成为主流。本文探讨了Angular与AWS Amplify的结合,展示了如何通过示例代码快速构建云端连接的前端应用。Angular是由Google支持的开源前端框架,而AWS Amplify是AWS提供的云服务,两者结合可以快速构建云端连接的前端应用。文中还分享了一些最佳实践,帮助开发者更高效地使用这两种技术构建高性能的云端连接的前端应用。随着Angular和AWS Amplify生态的不断成熟,它们将在未来的Web开发中扮演更加重要的角色。
208 0
|
SQL 存储 分布式计算
MaxCompute产品使用问题之odps sql如何定义变量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
529 0
|
XML 搜索推荐 数据格式
资源描述框架的用途及实际应用解析
**RDF(资源描述框架)**是一种用于机器理解网络资源的框架,使用XML编写。它通过URI标识资源,用属性描述资源,便于计算机应用程序处理信息。RDF在语义网上促进信息的确切含义和自动处理,使得网络信息可被整合。RDF语句由资源、属性和属性值组成。RDF文档包括`&lt;rdf:RDF&gt;`根元素和`&lt;rdf:Description&gt;`元素,后者用`about`属性标识资源。RDF还支持容器(如`&lt;Bag&gt;`、`&lt;Seq&gt;`和`&lt;Alt&gt;`)来描述集合。RDFS是RDF的扩展,提供描述类和属性的框架,而达布林核心是一组预定义属性,用于描述文
483 0
shared_ptr循环引用问题以及解决方法
shared_ptr循环引用问题以及解决方法
579 0
|
JSON Java 数据格式
Java:MyBatis-Plus自动映射json字段
Java:MyBatis-Plus自动映射json字段
1000 0
|
JavaScript
如何实现一个公共组件库上传到npm并在项目中使用
如何实现一个公共组件库上传到npm并在项目中使用
708 0
如何实现一个公共组件库上传到npm并在项目中使用
|
人工智能 PHP Python