当前位置:网站首页>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
边栏推荐
- Force buckle day31
- TS 类型体操 之 循环中的键值判断,as 关键字使用
- Word delete the contents in brackets
- The differences and advantages and disadvantages between cookies, seeion and token
- Uni app practical project
- Typescript void base type
- Solution to the problem of breakthrough in OWASP juice shop shooting range
- navicat如何导入MySQL脚本
- 剪映的相关介绍
- C - Inheritance - hidden method
猜你喜欢
(4) Web security | penetration testing | network security web site source code and related analysis
剪映的相关介绍
Redis builds clusters
杰理之蓝牙设备想要发送数据给手机,需要手机先打开 notify 通道【篇】
leecode-C语言实现-15. 三数之和------思路待改进版
Go learning --- use reflection to judge whether the value is valid
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
TypeScript接口与泛型的使用
[MySQL learning notes 30] lock (non tutorial)
JDBC学习笔记
随机推荐
Multi attribute object detection on rare aircraft data sets: experimental process using yolov5
JMeter performance test steps practical tutorial
TypeScript 函数定义
TypeScript void 基础类型
[CF Gym101196-I] Waif Until Dark 网络最大流
If Jerry needs to send a large package, he needs to modify the MTU on the mobile terminal [article]
On the world of NDK (2)
软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历
Word delete the contents in brackets
Relevant introduction of clip image
First knowledge of OpenGL es learning (1)
word中如何删除某符号前面或后面所有的文字
C # create database connection object SQLite database
SSM learning
烧录场景下的源代码防泄密方案分享
Week6 weekly report
Project GFS data download
If Jerry's Bluetooth device wants to send data to the mobile phone, the mobile phone needs to open the notify channel first [article]
word中把帶有某個符號的行全部選中,更改為標題
[MySQL learning notes 29] trigger