题目描述

输入

一行,两个整数l,r 。

输出

一行,一个整数,表示第l 天到第r 天的愉悦值的和。

样例输入

64 89

样例输出

1818

数据范围

解法

可以参考数位动态规划的想法。

从个位开始,逐位把特殊值变为一般值。

然后分类讨论即可。

代码

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#define ll long long
#define ln(x,y) int(log(x)/log(y))
#define sqr(x) ((x)*(x))
using namespace std;
const char* fin="aP3.in";
const char* fout="aP3.out";
const int inf=0x7fffffff;
const int maxn=30,mo=1000000007;
ll n,m,i,j,k,ans1;
ll qpower(ll a,ll b,ll mo){
ll c=1;
while (b){
if (b&1) c=a*a%mo;
a=a*a%mo;
b>>=1;
}
return c;
}
ll niyuan(ll a){
return qpower(a,mo-2,mo);
}
ll pp(ll v){
ll c=1;
for (;v;v--) c*=10;
return c;
}
ll count1(ll v){
ll i,j,k,cnt=1,ans=0,tmp=0,tmd,l,o,b[maxn],c[maxn];
if (v==0) return 0;
b[0]=0;
for (;v;v/=10) b[++b[0]]=v%10;
cnt=1;
ans=0;
for (k=1;k<=b[0];k++){
ans=(ans+b[k]*b[b[0]-k+1])%mo;
c[k]=1;
}
bool bz=false;
for (i=1;i<=b[0];i++){
for (j=(i==b[0]?1:0);j<b[i];j++){
o=b[i];
b[i]=j;
tmp=1;
for (k=1;k<=b[0];k++){
if (k*2-1==b[0]) {
if (!bz) ans=(ans+sqr(b[k])*(cnt/c[k])%mo)%mo;
else ans=(ans+b[k]*(cnt/c[k])%mo)%mo;
}
else ans=(ans+b[k]*b[b[0]-k+1]*(cnt/(c[k]*c[b[0]-k+1]))%mo)%mo;
}
b[i]=o;
}
if (i*2-1==b[0]) {
b[i]=285;
bz=true;
}
else b[i]=45;
c[i]=10;
cnt*=10;
}
ans=(ans+count1(pp(b[0]-1)-1))%mo;
return ans;
}
int main(){
scanf("%lld%lld",&n,&m);
ans1=count1(m)-count1(n-1);
ans1=(ans1+mo)%mo;
printf("%lld",ans1);
return 0;
}

启发

梦魇一般的题目。

要往死里打,遇到不对的数据,分类讨论到对为止。

改着改着就AC了。

数位动态规划的想法可以借鉴一下。

【JZOJ4799】【NOIP2016提高A组模拟9.24】我的快乐时代的更多相关文章

  1. 【NOIP2016提高A组模拟9.24】总结

    第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...

  2. 【NOIP2016提高A组模拟9.24】我的快乐时代

    题目 分析 虽然我们很难求出\(\sum_{i=n}^mjoy(i)\), 但是我们可以分别求出\(\sum_{i=1}^mjoy(i)\)和\(\sum_{i=1}^{n-1}joy(i)\),相减 ...

  3. 【NOIP2016提高A组模拟9.24】天使的分裂

    题目 分析 这题可以递推, 但是\(O(n)\)还是会超时, 就用矩阵快速幂. #include <cmath> #include <iostream> #include &l ...

  4. JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数

    4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms  Memory Limits: 262144 KB  Detailed ...

  5. 【NOIP2016提高A组模拟9.14】数列编辑器

    题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...

  6. 【JZOJ4746】【NOIP2016提高A组模拟9.3】树塔狂想曲

    题目描述 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映射到该数塔上行 ...

  7. 【JZOJ4745】【NOIP2016提高A组模拟9.3】看电影

    题目描述 听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影.可是省常中OI队的同学们共有 N(N >= K)人.于是机智的你想到了一个 ...

  8. 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导

    题目描述 输入 输出 样例输入 2x^2+3x+1 样例输出 4x+3 数据范围 样例解释 求导的意思: 多项式是由若干个单项式构成的 单项式的一般形式是ax^b,其中ab都是常数,x是自变量 对于单 ...

  9. 【JZOJ4787】【NOIP2016提高A组模拟9.17】数格子

    题目描述 输入 输出 样例输入 1 10000 3 10000 5 10000 0 0 样例输出 1 11 95 数据范围 每个测试点数据组数不超过10组 解法 状态压缩动态规划. 设f[i][j]表 ...

随机推荐

  1. SDF与MDF的区别

    标签: 杂谈   数据库扩展名为.sdf,是一个基于sql server compact edition的数据库文件,不需要安装SQL Server就可以用 基于服务的数据库扩展名为.mdf,是基于S ...

  2. c# 将Datarow转成Datarowview

    DataRowView rowview= dataTable.DefaultView.Cast<DataRowView>().Where(a => a.Row == tmprow). ...

  3. 差分进化算法(DE)的C++面向对象方法实现

    代码来源于网络,写得非常棒 /*DE_test *对相应的Matlab程序进行测试 */ #include <iostream> #include <cmath> #inclu ...

  4. Spring配置xml自动提示——转载https://blog.csdn.net/sinat_18474835/article/details/79370629

    以Spring2.0为例: 下载地址: Csdn: http://download.csdn.net/download/hh775313602/9812757 没积分的可以去百度网盘下载,我已共享: ...

  5. [转]了解screen对象的常用视图属性

    前面的话 screen对象基本上只用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等.每个浏览器中的screen对象都包含着各不相同的属性.本文将详细介绍screen对象的 ...

  6. mysql8.0 的坑 hibernate连接配置坑

    https://blog.csdn.net/qq_36448800/article/details/81180881 这篇文章对于连接配置说的是对的,也比较全面

  7. CHARINDEX函数

    CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置.CHARINDEX函数调用方法如下:    CHARINDEX ( expression1 , expression2 [ , st ...

  8. BZOJ2529: [Poi2011]Sticks

    2529: [Poi2011]Sticks Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 257  Solved: ...

  9. BZOJ1452 [JSOI2009]Count [2017年4月计划 树状数组02]

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2419  Solved: 1403[Submit][Stat ...

  10. 【python之路16】作业

    #!usr/bin/env python # -*- coding:utf-8 -*- # 数据库中原有 old_dict = { "#1": {'hostname': 'c1', ...