DTOJ 4745. 进制转换
题意
给定一个十进制数 yyy,请选择一个进制 bbb,使得 yyy 转成 bbb 进制后大于或等于 bbb 进制下的 lll,且每位均为 000 到 999 之间的数码。求最大的 bbb 。
所有数据满足 10≤l≤y≤101810 \le l \le y \le 10^{18}10≤l≤y≤1018
Subtask | T,yT,yT,y | PointsPointsPoints |
---|---|---|
1 | T=1,y≤104T=1, y \leq 10^{4}T=1,y≤104 | 20 |
2 | T=1,y≤109T=1, y \leq 10^{9}T=1,y≤109 | 20 |
3 | T=1T=1T=1 | 20 |
4 | T≤500T \le 500T≤500 | 20 |
5 | T≤100000T \le 100000T≤100000 | 20 |
题解
好奇怪的题啊。。。
原本想的是如果b很小就枚举,b很大的话转化后的数位数较少,直接枚举转化后的数,这样效率是max(yx,10x)max( \sqrt[x]{y} ,10^{x} )max(xy,10x)的,甚至过不了80分。
设转化为bbb进制后的数为aaa,aaa的最高位为ama_mam。
发现am⋅bma_m\cdot b^mam⋅bm比其它项都大得多,即am⋅bm≤y≤am⋅bm+9×bm−1b−1a_m\cdot b^m \le y \le a_m\cdot b^m + 9\times \frac {b^m-1}{b-1}am⋅bm≤y≤am⋅bm+9×b−1bm−1,考虑利用这个把边界缩小。
不等式的左边很好解,b≤yammb \le \sqrt[m]{\frac {y}{a_m}}b≤mamy,令bbb从这个值开始向下枚举,直到不满足不等式的右边,发现这样在边界比较大的时候,枚举的范围不会很大。
对b≤100b \le 100b≤100的暴力,再枚举1≤m≤8,0≤am≤91 \le m \le 8, 0 \le a_m \le 91≤m≤8,0≤am≤9 计算。复杂度大约不超过300⋅lg300 \cdot lg300⋅lg。 (还是过不去要玄学卡常)
DTOJ 4745. 进制转换相关推荐
- python中不同进制的整数之间可以直接运算_Python 进制转换、位运算
一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...
- c语言进制转换pdf下载,C语言实现任意进制转换.doc
C语言实现任意进制转换.doc includestdio.h#includemath.h#includestring.hvoid dtox(double num,int jz)char xnum100 ...
- 进制转换converse
栈和队列是在软件设计中常用的两种数据结构,它们的逻辑结构和线性表相同. 其特点在于运算受到了限制:栈按"后进先出"的规则进行操作,队按"先进先出"的规则进行操作 ...
- 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)
我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...
- 每日一题(进制转换)
前言:为了让小伙伴更方便的学习编程语言,小白每天都会分享一道编程题.小白也创建了一个微信公众号,会同步更新题目和相关的视觉领域的知识,如果小伙伴不方便在网页上阅读文章,可以关注微信公众号"小 ...
- 进制转换数据结构c语言不用栈,急求!!!用数据结构(C语言)利用栈实现十进制向二(八)进制转换,要有注释,谢谢!...
匿名用户 1级 2013-12-05 回答 #include #include #include typedef unsigned int data_type; //结点数62616964757a68 ...
- 计算机中的数制和编码教案,计算机《数制与编码进制转换》公开课教案.doc
<计算机应用基础>教案 新田县职业中学 蒋玲 PAGE PAGE 7 数制与编码--进制转换 [学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已 ...
- 进制转换(完成Python14作业的背景补充)
来源于小甲鱼进制转换视频 数的认识 数,是一个无形的.抽象的概念,它是人类用来表示数量的一个智力的产物 "一百"是一个抽象概念,用到计数书本有几页就会变成具体的.有形的概念 我们要 ...
- python 进制转换_Python数据结构与算法——递归应用之进制转换
高考加油 在前面的文章中堆栈也用于进制转换(存放余数).而递归也可以用于进制转换,有固定模式循环,并且可以规模越来越小的问题都可以转换成递归 栈与递归之间一定有点联系 整数转换成任意进制 日常运算都是 ...
最新文章
- OkHttp源码分析
- 硅谷“封城”前夜的L4级别无人车试乘实况,及其背后创新技术的深度剖析
- 【简洁代码】1061 判断题 (15分)_18行代码AC
- 前后端分离如何解决跨域的问题?
- 语义分割概念及应用介绍
- 10本最火的中台与数字化转型图书,朋友圈都在传
- [WPF自定义控件] 开始一个自定义控件库项目
- .Net的文件格式(zz)
- PHP实现的服务器端,PHP实现服务器端允许客户端ajax跨域
- Python考试题库(含答案)
- 如何监控网页卡顿和崩溃?
- 企业思想家:专家详解元宇宙逻辑和产业机会 (5000余字)
- CondaVerificationError;conda install verifying transactions一直在转
- 设计心理学2-与复杂共处【读书笔记】
- MissionPlanner MP地面站添加三维地图支持
- python实现共轭梯度算法
- 相约AIIA!百度飞桨深度学习公开课预约中
- 工作八年的程序员,却拿着毕业三年的工资,再不开窍就真晚了...
- oracle11g 没有scott,Oracle11g中没有scott用户怎么办啊???
- 部署静态页面到腾讯云服务器