当前位置:网站首页>P2022 有趣的数(二分&数位dp)
P2022 有趣的数(二分&数位dp)
2022-07-06 04:11:00 【Harris-H】
P2022 有趣的数(二分&数位dp)
麻了。
二分答案,然后用数位dp计算 [ 1 , x ] [1,x] [1,x]中有多少个数字字典序 < < < k k k。
数位dp的时候开两个数组 a , b a,b a,b存 x , k x,k x,k。
然后就是常规的数位dp操作。
注意如果 d p dp dp数组开到 l i m , l e a d lim,lead lim,lead 则每次 c h e c k check check 都需要初始化 d p dp dp为 − 1 -1 −1。
因为这两个变量与 x x x有关。
否则可以只初始化一次。
另外 w , w 1 w,w1 w,w1长度不一定相同,所以 p o s 2 pos2 pos2可能减到 − 1 -1 −1。因此让 w 1 w1 w1基数为 20 20 20。
// Problem: P2022 有趣的数
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P2022
// Memory Limit: 125 MB
// Time Limit: 400 ms
// Date: 2022-07-05 13:23:31
// --------by Herio--------
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ll f[20][40][2][2][2],n,m;
int a[20],w;
int b[40],w1;
ll dfs(int pos, int pos2, bool cmp, bool lim, bool lead) {
if (pos == 0)
return (cmp || pos2 > 20) && (!lead);
if ( f[pos][pos2][cmp][lim][lead] != -1)
return f[pos][pos2][cmp][lim][lead];
ll tmp = 0, up = lim ? a[pos] : 9;
for (int i = 0; i <= up; ++i) {
bool nxcmp = !(lead && i == 0) && i < b[pos2];
nxcmp |= cmp;
if (!cmp && i > b[pos2])
continue;
tmp += dfs(pos - 1, pos2 - ((lead && i == 0) ? 0 : 1), nxcmp, lim && i == a[pos], lead && i == 0);
}
return f[pos][pos2][cmp][lim][lead] = tmp;
}
ll check(ll n) {
w = 0;memset(f, -1, sizeof (f));
while (n)
a[++w] = n % 10, n /= 10;
//printf("w=%d\n",w);
ll re = dfs(w, w1, false, true, true);
return re;
}
int main()
{
scanf("%lld%lld", &n, &m);
w1 = 20;
ll l = m > n ? m : n, r = 7e17, ans = 0;
while (n)
b[++w1] = n % 10, n /= 10;
//printf("w1=%d\n",w1);
for (; l <= r;) {
ll mid = (l + r) >> 1, tmp = check(mid);
// printf("%lld %lld\n",mid,tmp);
if (tmp == m - 1) {
ans = mid; r = mid - 1;
}
else if (tmp < m - 1) l = mid + 1;
else r = mid - 1;
}
printf("%lld\n", ans);
}
边栏推荐
- How to execute an SQL statement in MySQL
- WPF effect Article 191 box selection listbox
- Figure application details
- [introduction to Django] 11 web page associated MySQL single field table (add, modify, delete)
- Determine which week of the month the day is
- [adjustable delay network] development of FPGA based adjustable delay network system Verilog
- C (XXIX) C listbox CheckedListBox Imagelist
- asp. Core is compatible with both JWT authentication and cookies authentication
- [disassembly] a visual air fryer. By the way, analyze the internal circuit
- About some basic DP -- those things about coins (the basic introduction of DP)
猜你喜欢

The Research Report "2022 RPA supplier strength matrix analysis of China's banking industry" was officially launched

Ks003 mall system based on JSP and Servlet

No qualifying bean of type ‘......‘ available

Plus d'un milliard d'utilisateurs de grandes entreprises comme Facebook ont été compromis, il est temps de se concentrer sur le did

Data processing methods - smote series and adasyn
![[adjustable delay network] development of FPGA based adjustable delay network system Verilog](/img/82/7ff7f99f5164f91fab7713978cf720.png)
[adjustable delay network] development of FPGA based adjustable delay network system Verilog

TCP/IP协议里面的网关地址和ip地址有什么区别?

DM8 backup set deletion

Stable Huawei micro certification, stable Huawei cloud database service practice

Lora gateway Ethernet transmission
随机推荐
Python book learning notes - Chapter 09 section 01 create and use classes
Global and Chinese market of rubber wheel wedges 2022-2028: Research Report on technology, participants, trends, market size and share
Lora gateway Ethernet transmission
How can programmers resist the "three poisons" of "greed, anger and ignorance"?
Benefits of automated testing
Stable Huawei micro certification, stable Huawei cloud database service practice
HotSpot VM
Class A, B, C networks and subnet masks in IPv4
Detailed explanation of serialization and deserialization
How does technology have the ability to solve problems perfectly
Several important classes in unity
【按鍵消抖】基於FPGA的按鍵消抖模塊開發
80% of the diseases are caused by bad living habits. There are eight common bad habits, which are both physical and mental
自动化测试的好处
Interface idempotency
Brief tutorial for soft exam system architecture designer | general catalog
TCP/IP协议里面的网关地址和ip地址有什么区别?
AcWing 243. A simple integer problem 2 (tree array interval modification interval query)
Ks003 mall system based on JSP and Servlet
Unity中几个重要类