当前位置: 首页 > news >正文

Codeforces Round 863 (Div. 3) E. Living Sequence

题目链接

头一回用不是正解的方法做出来,也是比较极限,直接说做法就是二分+数位dp
数位 d p dp dp 1 − n 1-n 1n出现多少含 4 4 4的数字个数 这纯纯板子了 \sout{这纯纯板子了} 这纯纯板子了
f ( x ) f(x) f(x) 1 − x 1-x 1x 中含有4的个数, f f f 关于 x x x 单调递增(并非严格) ,题目要找的其实是 x − f ( x ) = k x-f(x)=k xf(x)=k这样一个解,我们去二分 x x x,检查 x − f ( x ) x-f(x) xf(x) k k k 的大小关系
Specially ,我们需要注意 x − f ( x ) x-f(x) xf(x) 是一个一会儿单调递增,一会儿没有增量的一个函数,所以我们要找最小的符合上述方程的解

#include<bits/stdc++.h>
using namespace std;
typedef long long i64;
i64 k;
int len,a[20];
i64 dp[20][2][2];i64 dfs(int pos,int limit,int flag){if(pos==len) return flag;if(dp[pos][limit][flag]!=-1) return dp[pos][limit][flag];int rg = limit?a[pos]:9;i64 ans = 0;for(int i = 0;i<=rg;++i){if(i==4) ans+=dfs(pos+1,limit&&i==rg,1);else ans+=dfs(pos+1,limit&&i==rg,flag);}return dp[pos][limit][flag] = ans;
}void solve(){cin>>k;i64 l = k,r = 2e18;while(l<=r){i64 mid= (l+r)>>1;len = 0;i64 tmp = mid;while(tmp){a[len++] = tmp%10;tmp/=10;}reverse(a,a+len);for(int i = 0;i<20;++i){for(int j = 0;j<2;++j){dp[i][j][0]=dp[i][j][1]=-1;}}i64 t = dfs(0,1,0);if(mid-t>=k) r = mid-1;else l = mid+1;}cout<<l<<"\n";
}signed main(){ios::sync_with_stdio(0);cin.tie(0);int t;cin>>t;while(t--) solve();return 0;
}
http://www.lryc.cn/news/530698.html

相关文章:

  • 一文讲解HashMap线程安全相关问题(上)
  • MFC 创建Ribbon样式窗口
  • uv 安装包
  • IELTS口语练习题库
  • 图书管理系统 Axios 源码__获取图书列表
  • 基于OSAL的嵌入式裸机事件驱动框架——整体架构调度机制
  • c++ string类 +底层模拟实现
  • 六十分之三十七——一转眼、时光飞逝
  • Shell基础:中括号的使用
  • 《基于Scapy的综合性网络扫描与通信工具集解析》
  • 面经--C语言——sizeof和strlen,数组和链表,#include <>和 #include ““ #define 和typedef 内存对齐概述
  • 使用 Kotlin 将 Vertx 和 Springboot 整合
  • 线性回归算法-01
  • 洛谷 P1130 红牌 C语言
  • 虚幻UE5手机安卓Android Studio开发设置2025
  • 线性代数复习笔记
  • 你需要更深层次的解放
  • 机器学习算法在网络安全中的实践
  • Qt事件处理:理解处理器、过滤器与事件系统
  • DeepSeek相关技术整理
  • DeepSeek 遭 DDoS 攻击背后:DDoS 攻击的 “千层套路” 与安全防御 “金钟罩”
  • 蓝桥杯之c++入门(二)【输入输出(上)】
  • 消息队列应用示例MessageQueues-STM32CubeMX-FreeRTOS《嵌入式系统设计》P343-P347
  • 算法题(55):用最少数量的箭引爆气球
  • 谭浩强C语言程序设计(4) 8章(下)
  • AlexNet论文代码阅读
  • 62.病毒在封闭空间中的传播时间|Marscode AI刷题
  • Elixir语言的安全开发
  • Rust 条件语句
  • 小红的合数寻找