当前位置:网站首页>Digital DP template
Digital DP template
2022-07-05 00:50:00 【Krito.】
Simply save a board , In order to avoid going through documents and websites everywhere in the future .
notes : Not to explain , For personal use only .
explain
choose P2602 [ZJOI2010] The problem of number counting AC Code as a template .
1.dp Of n Each dimension of the dimension group represents a certain current state , Take this question as an example ,dp[pos][sum][st] in ,pos Represents the current number ,sum Indicates the number of occurrences of a number in the higher-order digits of the current digit ,st Indicates whether there is a leading 0.
2.dfs Search the possible value of each digit and save the current state . Again , Take this question as an example ,pos Indicates the current digit ,pre Indicates the size of the previous digit ( This question seems useless ),st Indicates whether it is a leading 0,sum Indicates the number of occurrences of a certain number so far ,limit Indicates whether there is a size limit for the current digit .
3.solve What you get is [0,x] The number of intervals that meet the requirements , Want to get [L,R], use solve(R)-solve(L-1) that will do .
4. Make a reasonable plan dp Number and meaning of dimensions of array ,dfs The state of being carried , The filter condition is digits dp The key to .
Templates
/*@_krito*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define LM LLONG_MAX
#define IM INT_MAX
#define _for(i,a,b) for(int i=a;i<=b;i++)
ll dp[15][15][2];
int a[15];
inline int read(){
int x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int spot;
ll dfs(int pos,int pre,int st,int sum,int limit){
if(!pos) return sum;
if(!limit&&dp[pos][sum][st]!=-1) return dp[pos][sum][st];
ll res=0;
int maxn=limit?a[pos]:9;
_for(i,0,maxn){
res+=dfs(pos-1,i,st&&(i==0),sum+((!st||i)&&(i==spot)),limit&&i==maxn);
}
dp[pos][sum][st]=res;
return res;
}
ll solve(ll x)
{
ll ans;
int len=0;
while(x) a[++len]=x%10,x/=10;
memset(dp,-1,sizeof(dp));
return ans=dfs(len,0,1,0,1);
}
int main(){
ll ANS=0;
ll L,R;
scanf("%lld%lld",&L,&R);
_for(i,0,9){
spot=i;
printf("%lld ",solve(R)-solve(L-1));
}
}边栏推荐
- Paper notes multi UAV collaborative monolithic slam
- P3304 [sdoi2013] diameter (diameter of tree)
- Parsing of XML
- Maximum number of "balloons"
- 6. Scala operator
- SAP UI5 应用开发教程之一百零六 - 如何提高 SAP UI5 应用路由 url 的可读性试读版
- 26.2 billion! These universities in Guangdong Province have received heavy support
- The most complete regular practical guide of the whole network. You're welcome to take it away
- Hisilicon 3559 universal platform construction: YUV422 pit stepping record
- [STM32] (I) overview and GPIO introduction
猜你喜欢

Applet live + e-commerce, if you want to be a new retail e-commerce, use it!

Fs8b711s14 electric wine bottle opener MCU IC scheme development special integrated IC

There is a new Post-00 exam king in the testing department. I really can't do it in my old age. I have

【Unity】InputSystem

What you learned in the eleventh week

lambda表达式

2022.07.03(LC_6111_统计放置房子的方式数)

【C】 (written examination questions) pointer and array, pointer

Detailed explanation of multi-mode input event distribution mechanism

Expose testing outsourcing companies. You may have heard such a voice about outsourcing
随机推荐
107. SAP UI5 OverflowToolbar 容器控件以及 resize 事件处理的一些细节介绍
Identifiers and keywords
He worked as a foreign lead and paid off all the housing loans in a year
SAP UI5 应用开发教程之一百零七 - SAP UI5 OverflowToolbar 容器控件介绍的试读版
leetcode494,474
大专学历,33岁宝妈又怎样?我照样销售转测试,月入13k+
Mongodb series learning notes tutorial summary
初识ROS
[Yocto RM]11 - Features
Hologres Query管理及超时处理
OpenHarmony资源管理详解
What if the programmer's SQL data script coding ability is weak and Bi can't do it?
[error reporting] "typeerror: cannot read properties of undefined (reading 'split')“
P3304 [SDOI2013]直径(树的直径)
Get to know ROS for the first time
《论文笔记》Multi-UAV Collaborative Monocular SLAM
Query for Boolean field as "not true" (e.g. either false or non-existent)
Hill sort of sorting
Enterprise application business scenarios, function addition and modification of C source code
2022.07.03 (LC 6108 decryption message)