当前位置:网站首页>Cf1036c class numbers solution
Cf1036c class numbers solution
2022-07-06 07:29:00 【q779】
CF1036C Classy Numbers Answer key
Topic link :CF1036C Classy Numbers
The question : Define a number as “ Good number ”, If and only if its decimal representation does not exceed 3 3 3 A digital 1 ∼ 9 1 \sim 9 1∼9
for instance : 4 , 200000 , 10203 4,200000,10203 4,200000,10203 yes “ Good number ”, However 4231 , 102306 , 7277420000 4231,102306,7277420000 4231,102306,7277420000 No
Given [ l , r ] [l,r] [l,r], Ask how many x x x bring l ≤ x ≤ r l \le x \le r l≤x≤r, And x x x yes “ Good number ”
Altogether T ( 1 ≤ T ≤ 1 0 4 ) T(1 \le T \le 10^{4}) T(1≤T≤104) Group data , For each inquiry , Output an integer on a line to represent the answer
1 ≤ l i ≤ r i ≤ 1 0 18 1 \le l_i \le r_i \le 10^{18} 1≤li≤ri≤1018
General figures dp It can be used to solve ∑ i = l r f ( i ) \sum _{i=l}^{r} f(i) ∑i=lrf(i) The problem of ,
among f ( i ) f(i) f(i) As with the i i i A function or determinant related to the digits of
This question is slightly distorted , Then we will naturally record the occurrence of figures
set up f i , j f_{i,j} fi,j It means full i i i digit , Yes j j j A non 0 0 0 position
Using memory search , See the code for details.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iomanip>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
#define N (int)()
int num[25],f[25][5];
// u Indicates the current number of digits ,st Represents the current j,limit Indicates whether there is a high limit
int dfs(int u,int st,bool limit)
{
if(!u)return 1;
if(!limit&&f[u][st]!=INF)
return f[u][st]; // Memorize
int up=limit?num[u]:9,ans=0;
for(int i=0; i<=up; i++)
{
if(!i)ans+=dfs(u-1,st,limit&&num[u]==i);
else if(st!=3)ans+=dfs(u-1,st+1,limit&&num[u]==i);
}
if(!limit) f[u][st]=ans; // Just record what has no upper limit
return ans;
}
int solve(int x)
{
int len=0;
while(x>0)
{
num[++len]=x%10;
x/=10;
}
return dfs(len,0,1);
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
// freopen("check.in","r",stdin);
// freopen("check.out","w",stdout);
memset(f,0x3f,sizeof(f));
int Q;cin >> Q;
while(Q--)
{
int l,r;
cin >> l >> r;
cout << solve(r)-solve(l-1) << '\n';
}
return 0;
}
reference
[1] https://www.luogu.com.cn/blog/rated/solution-cf1036c
Reprint please explain the source
边栏推荐
- Three treasures of leeks and Chinese men's football team
- Oracle column to row -- a field is converted to multiple rows according to the specified separator
- 杰理之需要修改 gatt 的 profile 定义【篇】
- QT color is converted to string and uint
- jmeter性能测试步骤实战教程
- Do you really think binary search is easy
- leecode-C语言实现-15. 三数之和------思路待改进版
- Path analysis model
- 剪映的相关介绍
- Introduction to the basics of network security
猜你喜欢

You deserve this high-value open-source third-party Netease cloud music player

The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower

Basics of reptile - Scratch reptile

Simulation of holographic interferogram and phase reconstruction of Fourier transform based on MATLAB

Simulation of Michelson interferometer based on MATLAB

Markdown 中设置图片图注

Google可能在春节后回归中国市场。

杰理之BLE【篇】
![If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]](/img/d6/92ad1c6f84415de6ab0dfd16cd6073.png)
If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]

数字IC设计笔试题汇总(一)
随机推荐
QT color is converted to string and uint
Full Score composition generator: living on code
Go learning --- use reflection to judge whether the value is valid
The way to learn go (I) the basic introduction of go to the first HelloWorld
Oracle column to row -- a field is converted to multiple rows according to the specified separator
mysql如何合并数据
洛谷P4127 [AHOI2009]同类分布 题解
If Jerry needs to send a large package, he needs to modify the MTU on the mobile terminal [article]
Memory error during variable parameter overload
word设置目录
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
SSM learning
GET/POST/PUT/PATCH/DELETE含义
Do you really think binary search is easy
Introduction to the basics of network security
Simulation of Teman green interferometer based on MATLAB
Week6 weekly report
Redis builds clusters
How are the open source Netease cloud music API projects implemented?
Solution to the problem of breakthrough in OWASP juice shop shooting range