当前位置:网站首页>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
边栏推荐
- [window] when the Microsoft Store is deleted locally, how to reinstall it in three steps
- Jerry's ad series MIDI function description [chapter]
- OpenJudge NOI 2.1 1749:数字方格
- Ble of Jerry [chapter]
- How MySQL merges data
- [MySQL learning notes 32] mvcc
- TypeScript接口与泛型的使用
- TS 体操 &(交叉运算) 和 接口的继承的区别
- 1015 reversible primes (20 points) prime d-ary
- Typescript indexable type
猜你喜欢

Relevant introduction of clip image

Twelve rules for naming variables

Week6 weekly report

Go learning -- implementing generics based on reflection and empty interfaces

【mysql学习笔记30】锁(非教程)

Force buckle day31
![Ble of Jerry [chapter]](/img/d8/d080ccaa4ee530ed21d62755808724.png)
Ble of Jerry [chapter]

Simulation of Teman green interferometer based on MATLAB
![When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]](/img/3e/3d5bff87995b4a9fac093a6d9f9473.png)
When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]

Excel的相关操作
随机推荐
SSM学习
Rust language - receive command line parameter instances
成为优秀的TS体操高手 之 TS 类型体操前置知识储备
LeetCode Algorithm 2181. Merge nodes between zero
位运算异或
Chrome view page FPS
杰理之BLE【篇】
剪映的相关介绍
Word setting directory
Jerry needs to modify the profile definition of GATT [chapter]
Simulation of Michelson interferometer based on MATLAB
TS 类型体操 之 循环中的键值判断,as 关键字使用
杰理之蓝牙设备想要发送数据给手机,需要手机先打开 notify 通道【篇】
Introduction to the basics of network security
SSM learning
Typescript function definition
Ble of Jerry [chapter]
C # display the list control, select the file to obtain the file path and filter the file extension, and RichTextBox displays the data
word中如何删除某符号前面或后面所有的文字
Ali's redis interview question is too difficult, isn't it? I was pressed on the ground and rubbed