Carryon 数数字

序号:#138 难度:困难 时间限制:1000ms 内存限制:80M

描述

Carryon 最近迷上了数数字,然后 Starry 给了他一个区间 [l,r] ,然后提了几个要求,

  1. 需要将 l 到 r 之间的数全部转化成 16 进制,然后连起来。
  2. 将连起来的数又转化成 10 进制。
  3. 将最终结果对 15 取模。

数据范围: 1&lt;=l&lt;=r&lt;=10000000000001&lt;=l&lt;=r&lt;=10000000000001<=l<=r<=1000000000000

输入

单组输入 l 和 r 的值

输出

输出最终结果。

输入样例

10 14

输出样例

0

小提示

如:10、11、12、13、14的16进制分别是a、b、c、d、e。依次连在一起是abcde,转换成10进制是703710,对15取模为0。


思路:

  • 先看范围1~1e12 用普通for循环肯定超时,就要想怎么缩小范围,我们就先看取余
  • 来看看为什么这里优化是 c=a+(b−a)%15c = a + (b - a)\%15c=a+(b−a)%15
  • 因为最后也要对15求余,我们就先对范围内取余来达到缩小范围这样也会保证结果相同以致不会超时
import sysfor line in sys.stdin:line = line.strip()a, b = map(int, line.split())str = ""res = ""c = a + (b - a) % 15  # 先求个余  缩小范围for i in range(a, c + 1):str += hex(i)  # 每次加每个数的16进制str = str.replace('0x', '')  # 替换0x无用字符for i in range(a, b + 1):ans = hex(i)res += ansres = res.replace('0x', '')print("优化前:" + res)print("优化后:" + str)print(int(str, 16) % 15)  # 再从16进制转10进制取余

看下结果

    1 16优化前:123456789abcdef10优化后:111 99优化前:123456789abcdef101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60616263优化后:123456789010 14优化前:abcde优化后:abcde02 21优化前:23456789abcdef101112131415优化后:234565

import sys
for line in sys.stdin:line = line.strip()a,b= line.split()str = ""c = int(a) + (int(b)-int(a)) % 15    #  先求个余  缩小范围for i in range(int(a), int(c)+1):str += hex(i)                   #  每次加每个数的16进制str = str.replace('0x', '')          #  替换0x无用字符print(int(str, 16) % 15)            # 再从16进制转10进制取余

小米OJ Carryon 数数字(Python)相关推荐

  1. 小米OJ12月常规赛“数数字”题目详解与SG函数SG定理个人理解

    本文前面的部分讲的是博弈论简单理论与SG函数SG定理的一些理解,后面对小米OJ赛题做详细剖析,最后给出代码的详细解读. 目录 博弈论 P-Position与N-Position SG函数与SG定理 S ...

  2. 小米oj #4 最长连续数列

    小米oj #4 最长连续数列 题目链接 描述 输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) . 输入 54,55,300,12,56 输出 3 输入样例 100,4,2 ...

  3. python识别数字程序_python实现识别手写数字 python图像识别算法

    写在前面 这一段的内容可以说是最难的一部分之一了,因为是识别图像,所以涉及到的算法会相比之前的来说比较困难,所以我尽量会讲得清楚一点. 而且因为在编写的过程中,把前面的一些逻辑也修改了一些,将其变得更 ...

  4. python计算整数各位数字之和_Python入门篇之数字 python分享整数各位数字之和

    Python中输入一段数字,分享这段数字中奇数字之和如果可以,可以陪你千年不老,千年只想眷顾你倾城一笑,如果愿意,愿意陪你永世不离,永世只愿留恋你青丝白衣,你的容颜在小编心中如莲花的开落,残阳徽墨,细 ...

  5. java数数字及while和do while 的使用,以及程序的调试与验证

    while的条件是在进入循环体之前判断的,执行完一轮循环之后,会再回到循环开始的地方再次判断条件,而不会在循环体中随时判断条件 1.while语句是当条件满足时不断的执行循环体内语句. 2.会提前判断 ...

  6. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  7. fafu oj 1266 数数

    http://acm.fafu.edu.cn/problem.php?id=1266 fafu oj 1266 数数 //fafu oj 1266 数数//二分,具体看代码 #include < ...

  8. 【智力题】拿硬币(数数字)、游戏

    神奇的取模运算. 设计一种策略,保证自己 100% 能赢: 确定好自己的策略之后,每一次要视对方的行为而确定自己的拿取情况: 1. 什么是拿硬币(数数字)游戏? 拿硬币(数数字)是两个人玩的游戏,要求 ...

  9. 数数字(找规律+模拟)

    数数字 Description 统计一下 aaa ⋯ aaa * b(n 个 a × b) 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333*3=9999999999 ...

  10. Catalan 数之Python演示

    这里写自定义目录标题 Catalan 数之Python演示 带限制条件的路径总数 Python演示代码说明 Python代码 Catalan 数之Python演示 关于Catalan 数,英文的下面网 ...

最新文章

  1. centos6.3下yum安装redis
  2. 赋值运算符||位运算符||三元运算符
  3. Lua语言教程2 ——【表(Table) 类型】
  4. 循环队列的介绍与实现
  5. The method getTextContent() is undefined for the type Node 错误解决办法
  6. eclipse代码自动提示,eclipse设置代码自动提示
  7. [转载] Numpy 数学函数及逻辑函数
  8. sql 获取日期时分秒_SQL获取系统年月日时分秒 | 学步园
  9. Spring Cloud Feign声明式服务调用 (学习总结)
  10. 手机号身份证号码验证正则表达式包含台湾香港澳门
  11. PID参数自整定库之一:继电反馈整定算法
  12. android银行卡输入密码,android 仿微信添加银行卡时输入支付密码
  13. 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少
  14. c语言求圆锥的表面积和体积_c语言如何编程求圆体积和表面积
  15. MATLAB中nargin和nargout的妙用
  16. 计算机类大学生竞赛经验分享
  17. python seo编程_gogo闯SEO快排教程及应用编程(同步官方)
  18. matlab坐标轴设置多种字体(复合字体)
  19. 数据库链接失败问题,终于找到解决方案!
  20. 仁者如射,射者正己而后发。发而不中,不怨胜己者,反求诸己而已矣。

热门文章

  1. 快速搭建一个直播Demo
  2. ubuntu 16.04下设置静态IP地址
  3. 配置Windows静态IP地址
  4. PS教程:通道抠图美女发丝
  5. 《路由器开发 - 路由器刷机指南》联想Newifi Y1刷机
  6. 设计模式优秀文章集合
  7. java的青蛙跳井的编程_JAVA青蛙跳井使用流程控制语句:(1)有只青蛙坐在井底,离井口有20个单位长.(2)它使足力气可以连条3次,然后会下滑...
  8. stm32 SWD printf SWD调试输出
  9. ps把一张图里面的文字去掉而不改变字后面的背景;把同一个颜色的改为别的颜色
  10. python怎么读取pdf为文本_Python使用PDFMiner解析PDF