题意

传送门

给 \(x\le10^{700}\),问 \(1\) 到 \(x\) 中每个数在各数位排序后得到的数的和。答案模 \(10^9+7\)。

题解

学到一种新鲜的转化方式,来记一下。

将 \(x\) 的位数记为 \(n\)。一个显然的想法是算贡献,即枚举 \(d\in[0,9],i\in[1,n]\),算 \(d\) 在 \(i\) 位上出现的次数。但尝试了一会,发现难以处理。

此时我们将数字 \(i\in[0,9]\) 拆为 \(\underbrace{\overline{11\dots1}}_i\) 的形式,并竖着写下来。那么任意一个数可以表示为不超过 \(9\) 个 \(11\dots1\) 的和的形式。例如 \(3459\) 就是:

\[\begin{aligned}
1111\\
+1111\\
+1111\\
+111\\
+11\\
+1\\
+1\\
+1\\
+1\\
\end{aligned}
\]

然后再算贡献。枚举 \(d\in[1,9],i\in[1,n]\),那么答案加上:大于等于 \(d\) 的数字出现了恰好 \(i\) 次的数的个数 \(\times \underbrace{11\dots1}_i\)。前面部分是个简单的数位 \(\text{DP}\)。于是此题得解。

CF908G 题解的更多相关文章

  1. 【CF908G】New Year and Original Order(动态规划)

    [CF908G]New Year and Original Order(动态规划) 题面 洛谷 CF 题解 设\(f[i][j][k][0/1]\)表示当前填到了第\(i\)位,有\(j\)个大于等于 ...

  2. 【CF908G】New Year and Original Order 数位DP

    [CF908G]New Year and Original Order 题意:令S(i)表示将i中所有数位上的数拿出来,从小到大排序后组成一个新的数的值.如S(50394)=3459.求$\sum\l ...

  3. 【CF908G】New Year and Original Order

    [CF908G]New Year and Original Order 题面 洛谷 题解 设\(f[i][j][k][l]\)表示当前在第\(i\)位有\(j\)位大于等于\(k\),当前有没有卡上界 ...

  4. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  5. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  6. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  7. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  8. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  9. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  10. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

随机推荐

  1. JavaSE——.replace()方法替换内容

    package com.zhao.stringtest; public class Test5 { //.replace()方法替换词汇 public static void main(String[ ...

  2. goalng 将字符串转化成整数后取余

    package main import ( "fmt" "github.com/google/uuid" "hash/fnv" ) func ...

  3. CH582m模拟JoyStick使用USB与电脑通信

    目录 本程序改编自沁恒官网2022年1月更新的CH583EVT中的CompoundDev例程.这里只贴了main.c中的程序.能够实现:①直接接电脑,在设备管理器中能够查到被电脑识别为HID-comp ...

  4. 查看nohup.out 日志文件

    1.查看实时日志: tail -f nohup.out 2.查看实时日志并检索关键字: tail -f nohup.out | grep "关键字" 3.查看文件最后100行日志: ...

  5. 执行 dataX 数据同步命令

    :: 执行 dataX 数据同步命令 @echo off set day_interval=7@echo =========开始执行dataX数据同步========= @echo 时间周期为最近%d ...

  6. (0514)芯王国-志锐-Sd卡高速控制-AXI验证

    (1)commit (2)core  (3)generate (4)struct  结构体 (5)

  7. IO基础知识与概念

    https://zhuanlan.zhihu.com/p/473639031

  8. 《Makefile中变量的高级用法:变量的替换引用、变量的嵌套使用》

    高级使用方法有两种:第一种是变量的替换引用,第二种是变量的嵌套引用. 第一种用法经常用到,第二种用法我们很少使用.我们应该尽量避免使用变量的嵌套引用,在必须使用时,嵌套的层数越少越好.因为这种方法表达 ...

  9. Ginan-PEA例程下载

    输入以下命令可在Ubuntu系统中进行下载,但受到网络限制并不能有效下载或者下载很慢 python3 scripts/download_examples.py 通过阅读python脚本,可将下载网址拷 ...

  10. MATLAB基础—基础认识

    数建-MATLAB(基础认识) 一些基本使用 clear all :清除Workspace中的所有变量 clc: 清除Command Window中的所有命令 注释:%%(空空格)多行注释 或 % 单 ...