题目大意

有一个无限长的数字序列,其组成为1 1 2 1 2 3 1.......1 2 ... n...,即重复的1~1,1~2....1~n,给你一个\(k\),求第\(k(k<=10^{18})\)个数字是什么。

思路

设\(a[i]\)为该数到达\(i\)的长度,\(b[i]\)为第\(i\)个数那一块的长度,\(\sum b[i]=a[i]\),发现\([10^i,10^{i+1})\)的数长度均为\(i+1\),那么在这一段中\(b[i]\)都是一个等差数列,而计算\(a[i]\)就可以分为两块计算,在\(10^i\)之前前面应该就可以处理出来,考虑\(10^i\)之后的情况,设\(l=b[10^{i−1}],cnt=x−10i+1\),所以\(b[x]=b[10^{i−1}]+l×cnt+cnt×(cnt+1)/2×(i+1)\)。

然后就好做了,两次二分就好了,第一次二分找到最大的i使\(b[i]<k\),那么解就在第\(i+1\)块中,\(k−=ssum[i]\);第二次二分找到最大的\(i\)使\(sum[i]<k\),那么解就在数\(i+1\)中,\(k−=sum[i]\)。最后数\(i+1\)的第\(k\)位就是答案。

代码

等会放 我好难

最新文章

  1. PIC10F200/202/204/206/220/222/320/322芯片解密程序复制多少钱?
  2. [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
  3. javascript模板库jsrender加载并缓存外部模板文件
  4. svn学习笔记(3)设置
  5. 161216、使用spring的DefaultResourceLoader自定义properties文件加载工具类
  6. MATLAB仿真总结
  7. Open SQL详解
  8. JavaWeb笔记——三大组件之监听器
  9. ASP中双引号单引号和&amp;连接符使用技巧
  10. WordPress Platinum SEO插件跨站脚本漏洞
  11. 使用ListItem给DropDownList填充数据
  12. Eclipse中输入系统变量和运行参数--转
  13. 由fprintf和printf看C语言三种标准流
  14. C#属性总结
  15. 使用Intellij Idea自定义MVC框架
  16. hdu 2089 不要62(入门数位dp)
  17. beta冲刺5
  18. 利用css3+js实现简单带立体过渡效果的图片切换(chrome浏览器)
  19. Java基础 -- 深入理解迭代器
  20. [LeetCode] Largest Triangle Area 最大的三角区域

热门文章

  1. 大神Java8写了一段逻辑,我直呼看不懂
  2. HarmonyOS面向128KB-128MB内存终端开源
  3. JVM-STW-stop the world
  4. if-else​ 条件语句
  5. 【转】Locust 性能测试-小案例(1)-环境搭建
  6. 刷题[WUSTCTF2020]CV Maker
  7. 几个超级好用但很少有人知道的 webstorm技巧
  8. Python2.7集成scrapy爬虫错误解决
  9. flutter,跟着官网一步一步创建第一个flutter应用
  10. JS中的DOM对象