http://acm.hdu.edu.cn/showproblem.php?pid=4507 (题目链接)

题意

  求区间${[a,b]}$中的某些数的平方和,这些数要满足1.不是7的倍数,2.不含有7这个数字,3.所有数位上的数加起来不是7的倍数

Solution

  貌似记忆化搜索会好写的多→_→

  虽然是求平方和,但是要求满足的性质都很符合数位dp的尿性,所以我们记3个东西:平方和,和,个数。然后直接做就可以了。

细节

  LL

代码

// hdu4507
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<ctime>
#define LL long long
#define inf (1ll<<30)
#define MOD 1000000007
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std; LL bin[30],l,r;
int vis[20][7][7][2],t[20],n; struct data {LL x,y,z;}f[20][7][7][2]; data dfs(int pos,int s,int r,int c,int lim) {
if (!pos) {
if (!c && s && r) return (data){1,0,0};
else return (data){0,0,0};
}
if (!lim && vis[pos][s][r][c]) return f[pos][s][r][c];
int end=lim ? t[pos] : 9;
data ans=(data){0,0,0};
for (int i=0;i<=end;i++) {
data tmp=dfs(pos-1,(s+i)%7,(r*10+i)%7,c|(i==7),lim && i==end);
LL add=i*bin[pos-1];
(ans.x+=tmp.x)%=MOD; //个数
(ans.y+=tmp.y+add*tmp.x)%=MOD; //和
(ans.z+=tmp.z+add*tmp.x%MOD*add%MOD+2*tmp.y%MOD*add%MOD)%=MOD; //平方和
}
if (!lim) vis[pos][s][r][c]=1,f[pos][s][r][c]=ans;
return ans;
}
LL solve(LL x) {
for (n=0;x;x/=10) t[++n]=x%10;
return dfs(n,0,0,0,1).z;
}
int main() {
bin[0]=1;for (int i=1;i<=20;i++) bin[i]=bin[i-1]*10%MOD;
int T;scanf("%d",&T);
while (T--) {
scanf("%lld%lld",&l,&r);
LL ans=solve(r)-solve(l-1);
printf("%lld\n",(ans+MOD)%MOD);
}
return 0;
}

【hdu4057】 恨7不成妻的更多相关文章

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

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

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

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

  3. [HDU] 4507 恨7不成妻

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

  4. 【数位DP】恨7不成妻

    [数位DP]恨7不成妻 时间限制: 1 Sec  内存限制: 128 MB提交: 8  解决: 4[提交] [状态] [命题人:admin] 题目描述 单身!依然单身! 吉哥依然单身!DS级码农吉哥依 ...

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

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

  6. B - 吉哥系列故事——恨7不成妻

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

  7. 【HDU4507】恨7不成妻

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

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

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

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

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

随机推荐

  1. 零基础学python之构建web应用(入门级)

    构建一个web应用 前面的学习回顾: IDLE是Python内置的IDE,用来试验和执行Python代码,可以是单语句代码段,也可以是文本编辑器中的多语句程序. 四个内置数据结构:列表.字典.集合和元 ...

  2. shell中中括号的使用

    原文出处:https://www.jianshu.com/p/855c9fb373ff Shell 里面的方括号(包括单中括号与双中括号)可用于以下三种情况的判断: 算术比较. 比如一个变量是否为0, ...

  3. runlevel 命令详解

    基础命令学习目录首页 原文链接:https://blog.csdn.net/PecoVio/article/details/82428883 runlevel 知识扩展 linux操作系统自从开始启动 ...

  4. No.1_NABCD模型分析

        Reminder 之 NABCD模型分析           定位 多平台的闹钟提醒软件. 在安卓市场发布软件,发布后一周的用户量为1000.           N (Need 需求) 这个 ...

  5. 5233杨光--Linux第一次实验

    学习计时:共14小时 读书:2小时 代码:7小时 作业:2小时 博客:3小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用Li ...

  6. 《Spring1之第六次站立会议》

    <第六次站立会议> 昨天:向小伙伴们请教了我代码的错误的解决方法以及对TCP/IP协议进行了相关的了解. 今天:我把自己项目工程里的服务器端界面进行了优化和完善. 遇到的问题:觉得做的界面 ...

  7. C# 打包

    开发环境:VS2010+SQL Server 2008 操作系统:win7_32bit 旗舰版 开发语言:C# 项目名称:学生寄宿管理系统 下面开始介绍:如何给windows应用程序打包? 第一步: ...

  8. Software Defined Networking(Week 2, part 2)

    History of SDN 1.3 - 1.4 课程地址 Network Virtualization 网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想.我们先讨论何为网络 ...

  9. 结对项目:四则运算web

    1)Coding.Net项目地址 https://git.coding.net/DandelionClaw/WEB_Calculator.git 注:本项目为web端,并且需要连接SQL Server ...

  10. WordCount程序实现

    程序功能: 统计出文件中文本的行数,每行字符数.单词数,文本空行数,文本总字符数.总单词数并显示. 使用方法: 1.在电脑中建立文本