【hdu4057】 恨7不成妻
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不成妻的更多相关文章
- [HDU4507]吉哥系列故事——恨7不成妻
[HDU4507]吉哥系列故事--恨7不成妻 试题描述 单身!依然单身!吉哥依然单身!DS级码农吉哥依然单身!所以,他生平最恨情人节,不管是214还是77,他都讨厌!吉哥观察了214和77这两个数,发 ...
- 吉哥系列故事——恨7不成妻(数位DP)
吉哥系列故事——恨7不成妻 http://acm.hdu.edu.cn/showproblem.php?pid=4507 Time Limit: 1000/500 MS (Java/Others) ...
- [HDU] 4507 恨7不成妻
吉哥系列故事——恨7不成妻 Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tota ...
- 【数位DP】恨7不成妻
[数位DP]恨7不成妻 时间限制: 1 Sec 内存限制: 128 MB提交: 8 解决: 4[提交] [状态] [命题人:admin] 题目描述 单身!依然单身! 吉哥依然单身!DS级码农吉哥依 ...
- 吉哥系列故事——恨7不成妻(数位dp)
吉哥系列故事--恨7不成妻 传送门 Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥 ...
- B - 吉哥系列故事——恨7不成妻
单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=72 77=71 ...
- 【HDU4507】恨7不成妻
Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 ...
- HDU - 4507 - 吉哥系列故事——恨7不成妻(数位DP,数学)
链接: https://vjudge.net/problem/HDU-4507 题意: 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都 ...
- HDU-4507-吉哥系列故事-恨7不成妻
题目描述 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 ...
随机推荐
- oracle数据库之子查询
子查询也叫内部查询,在主查询之前执行一次并得到结果,此结果一般情况下,是用来当做是主查询的条件. -- 在 emp 表中,找出工资比 ALLEN 的高? -- 先查出 ALLEN 的工资是多少? ...
- 机器学习之k-最近邻(kNN)算法
一.kNN(k-nearest neighbor)算法原理 事物都遵循物以类聚的思想,即有相同特性的事物在特征空间分布上会靠得更近,所以kNN的思路是:一个样本在特征空间中k个靠的最近的样本中,大多数 ...
- 学员管理系统(SQLAlchemy 实现)
一.业务逻辑 二.设计表结构 三.代码结构 start.py import os, sys sys.path.insert(0, os.path.dirname(os.path.dirname(os. ...
- thinkphp 3.x下的任意文件包含(有条件)分析
漏洞原理 实现自己的模版引擎不当,在模版渲染的情况下存在任意变量覆盖漏洞.. 漏洞详情 漏洞位置1 ThinkPHP/Library/Think/View.class.php 需要修改配置文件 指定T ...
- dmesg命令详解
基础命令学习目录 http://linux.cn/article-3587-1.html dmesg 命令的使用范例 下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例.‘dmesg’ ...
- Oracle和MySQL插入时获取主键
这里只写selectKey方法的 一,Oracle数据库中的写法 order="BEFORE"因为oracle中需要先从序列获取值,然后将值作为主键插入到数据库中 <sele ...
- 福大软工 Alpha 事后诸葛亮
写在前面 林燊大哥 一路走来,好不容易,终于完结了. 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题 用户在进店之前无法得知店铺的优劣 ...
- 第五次作业——python效能分析与几个问题(个人作业)
第五次作业--效能分析与几个问题(个人作业) 前言 阅读了大家对于本课程的目标和规划之后,想必很多同学都跃跃欲试,迫不及待想要提高自身实践能力,那么就从第一个个人项目开始吧,题目要求见下. 阅读 阅读 ...
- 使用fdisk创建好了分区,但是在生成物理卷出现"Device /dev/sdb2 not found (or ignored by filtering)."解决方法
生成物理卷出现的问题 解决方法 问题所在: 内核没有成功同步分区信息,所有才需要使用"partprobe"命令来手动同步
- 每日站立会议——敏捷流程scrum实践
每日站立会议是敏捷流程scrum中的很重要的一个制度之一. 功能: 1.快速同步进展,让项目组内部的员工互相了解彼此的进展,从而了解本项目的整体进展. 2.给每个人一种精神压力,信守 ...