题干:

单测试点时限: 2.0 秒

内存限制: 256 MB

“他觉得一个人奋斗更轻松自在。跟没有干劲的人在一起厮混,只会徒增压力。”

QQ 小方决定一个人研究研究进制转换。

很快,QQ 小方就遇到问题了。他现在想知道在十进制范围 [l,r] 内有多少整数满足在 k 进制下末尾恰好有 m 个 0 。

比如在十进制下的 24 在二进制下是 11000 ,我们称十进制下的 24 在二进制下末尾恰好有 3 个 0 。

QQ 小方一筹莫展,你能帮他解决问题吗?

输入

第一行包含一个整数 T (1≤T≤105 ) 表示数据组数。

对于每组数据包含一行,四个整数 l,r,k,m ( 1≤l≤r≤1018 , 2≤k,m≤100 ),含义如题目所述。

输出

对于每组数据输出一行,包含一个整数,表示答案。

样例

Input

2
1 10 2 3
1 100 2 3

Output

1
6

提示

例如,在 100 进制下,末位是 90 的数不算作有末尾 0 。

解题报告:

然后作差就行了。

但是注意这题要处理高精度问题。处理方法有两个,要么变乘法为除法,要么换范围更大的整数(选稍微比longlong大一点的就可以了)

AC代码1:

#include<cstdio>
#include<assert.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define fi first
#define se second
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 2e2 + 6;
const ll INF = 0x3f3f;
ll l,r,k,m;
unsigned ll tmp;
unsigned ll cal(unsigned ll x) {unsigned ll res = 0;res = x / tmp;if(tmp * k <= x && tmp*k >= 0) res -= x/(tmp*k) ;return res;
}
int main()
{int t,n;cin>>t;while(t--) {scanf("%lld%lld%lld%lld",&l,&r,&k,&m);tmp = 1;int flag = 1;for(int i = 1; i<=m; i++) {tmp *= k;if(tmp > r || tmp < 0) {flag = 0; break;}}if(!flag) {printf("0\n");continue;}printf("%lld\n",cal(r) - cal(l-1));} return 0 ;}

AC代码2:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int get(ll x,int k)
{int res=0;while(x){res++;x/=k;}return res;
}
int main()
{int T,k,m;scanf("%d",&T);while(T--){ll l,r;scanf("%lld%lld%d%d",&l,&r,&k,&m);int tmp=get(r,k);if(tmp<=m){puts("0");continue;}ll x=pow(1ll*k,m);ll ans=r/x-(l-1)/x;if(r/x>=k)ans-=(r/(x*k)-(l-1)/(x*k));printf("%lld\n",ans);}
}

或者使用Python:

T=int(input())
for i in range(T):l,r,k,m=map(int,input().split())now=k**ma=now*kprint((r//now-(l-1)//now)-(r//a-(l-1)//a))

【EOJ Monthly 2019.02 - D】进制转换(思维,取模,高精度大数)相关推荐

  1. 【EOJ Monthly 2019.02 - B】解题(思维,抽屉原理,暴力,模运算,优化,tricks)

    题干: 单测试点时限: 2.0 秒 内存限制: 1024 MB "我把房门上锁,并非为了不让她进去,而是为了防止自己逃到她身边". 她又被数学难住了.QQ 小方当然是不会对女生说& ...

  2. Codeforces 552C Vanya and Scales(进制转换+思维)

    题目链接:http://codeforces.com/problemset/problem/552/C 题目大意: 有101个砝码重量为w^0,w^1,....,w^100和一个重量为m的物体,问能否 ...

  3. 【EOJ Monthly 2019.02 - E】中位数(二分 ,中位数 ,−1/1变换,dp求解DAG最长路)

    题干: E. 中位数 单测试点时限: 10.0 秒 内存限制: 256 MB "你的地图是一张白纸,所以即使想决定目的地,也不知道路在哪里." QQ 小方最近在自学图论.他突然想出 ...

  4. 【EOJ Monthly 2019.02 - A】回收卫星(交互题型,二分)

    题干: 单测试点时限: 1.0 秒 内存限制: 256 MB "这个世上没有无用的齿轮,也只有齿轮本身能决定自己的用途." 就像太空中的卫星,虽然不计其数,但都各司其职. 但没有一 ...

  5. 【EOJ Monthly 2019.02 - F】方差(数学,前缀和,积的前缀和)

    题干: 单测试点时限: 2.0 秒 内存限制: 256 MB "放弃不难,但坚持一定很酷." QQ 小方已经在体育馆苦练一天射箭了,但他还在坚持. QQ 小方每天都要在朋友圈晒自己 ...

  6. 进制转换对学计算机的意义,浅析进制转换在计算机应用中的技巧.docx

    2019年浅析进制转换在计算机应用中的技巧 1.二进制的使用意义 一种新处置器的盛行,离不开响应软件的支撑.开拓新的处置器能够会由于落空响应软件的支撑而影响其推行使用和市场前景;另一方面,得不到普遍使 ...

  7. 最清晰的进制转换讲解 - java实现

    子曰:知之为不知,不知为不知,太菜也! 进制转换在平时的算法练习题或者项目中都会遇到,下面我们来看一下使用java如何进行进制互相转换. 文章目录 1. 使用内置函数进行进制转换 十进制转换其他进制 ...

  8. 进制转换(m 进制 x 转换为 n 进制的数)

    摘要:以前写的进制转换一般不会考虑大数问题,举个例子就是如果16进制的FFFFFFFFF就是16^9是一个非常大的数,这个时候就需要用数组来存. 题目: 将M进制的数X转换为N进制的数输出. 输入 输 ...

  9. EOJ Monthly 2019.2 (based on February Selection) D 进制转换 【数学 进制转换】

    任意门:https://acm.ecnu.edu.cn/contest/140/problem/D/ D. 进制转换 单测试点时限: 2.0 秒 内存限制: 256 MB "他觉得一个人奋斗 ...

最新文章

  1. cacti不绘制数据图
  2. 简单数据恢复菜鸟教程 (转)
  3. Settype COM_TA_MANUFAC - mapping between ERP Equipment and CRM Individual Object
  4. grep 显示包含两个关键字_linux三剑客之-grep
  5. 【Scala】Scala Java Error: value filter is not a member of *
  6. python链接器编译器实现_一个链接器的实现「一」
  7. python做副业_学习Python可以做哪些副业,你是不是感觉自己错过了一个亿?
  8. L1-032 Left-pad (20 分)—团体程序设计天梯赛
  9. java 泛型列表_如何在java中覆盖泛型列表返回类型
  10. maven项目中配置pom.xml引用ojdbc14.jar出错
  11. 各品牌智能电视刷机怎么寻找对应固件包?详细图文教程分享
  12. 今天开始开发竞争情报系统了,在这里做个记录
  13. 优盘在计算机上无法显示,U盘在电脑上不显示的原因
  14. 什么是实验室人员比对人员_实验室人员比对分析方法的讨论
  15. html简单的折叠菜单
  16. HTML 编码规范之布尔型属性
  17. Tuxera NTFS2022Mac驱动完美支持NTFS硬盘读写
  18. Android 安卓 百度地图
  19. 代表 YGG 的 Illuvium 首席游戏大使 —— Zom
  20. 爬取企查查和boss直聘数据

热门文章

  1. Sqlce与SQL Server2000/2005数据转换程序
  2. [轉]Flash/Flex监听浏览器的关闭事件
  3. JavaScript 图片上传预览效果
  4. [Leetcode][第392题][JAVA][判断子序列][动态规划][双指针]
  5. 软件项目立项书_2019年度上海市软件和集成电路产业发展专项资金项目立项
  6. 了解WWW服务与HTTP协议 【入门与应用】
  7. python答疑的作用_不学Python之集中答疑(5)
  8. 计算机应用基础试模块5ACCSE,2015年计算机二级《Access》上机最后冲刺卷(1)
  9. textarea如何在文字后面_FLASH如何制作风吹文字的效果
  10. 鸿蒙是内核名字,华为徐直军:鸿蒙只是内核的名字,是媒体给误解成操作系统...