UVA 11802 All Your Bases Belong to Us
题意:这个题题意个人觉得蛮难懂的。。。。意思就是求,把十进制下的n!转化成m进制,末位有且仅有k个连续的0。告诉n和k,求满足题意的m有多少个。
1<= k <= 10^15,n <= 10^15,保证n / k < 500。
解法:首先,用f(x,y)表示对于某数i,(x % (i^y)) == 0的i的个数,则题目即是求f(n!, k) - f(n!, k+1)。
其次,判断数i^k能不能被x整除的方法是,将i因式分解为i = p1^t1 * p2^t2 * P3^t3.....,则对于i的任意一个质因子p_i,x所含有p的次数要大等于t_i。
最后,求n!含有素数p的次数的方法是,sum = 0, while(n){ n /= p; sum += n;},sum即为所求次数。具体原因是,比如10!的阶乘含2的次数,那么2,4,6,8,10各含一个2,然后4,8各含一个2,然后8含一个2,这样,10!含有2的次数即是5+2+1。
这样,我们就得到了这道题的如下解法。首先,预处理出n!阶乘中含有次数大等于k的素数,并保存他们的次数。然后,用组合数学的方法求出满足题意的m有多少个。至于第一步为什么不会超时,是因为满足k <= n/i + n/i^2 + n/i^3 + n/i^4... <= n/i + n/i(类比2,发现后面加起来不会超过n/i) < 2*n / i,所以i <= 2*n/k < 1000,所以及时break就行了。
tag:math, think, good
UVA 11802 All Your Bases Belong to Us的更多相关文章
- UVa 108 - Maximum Sum(最大连续子序列)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- 【CodeForces 602A】C - 特别水的题3-Two Bases
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102271#problem/C Description After seeing the ...
- UVA 437 十九 The Tower of Babylon
The Tower of Babylon Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Subm ...
- Codeforces Round #333 (Div. 2) A. Two Bases 水题
A. Two Bases Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/602/problem/ ...
- cf602A Two Bases
A. Two Bases time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups / HDU 1699 Jamie's Contact Groups / SCU 1996 Jamie's Contact Groups (二分,二分图匹配)
POJ 2289 Jamie's Contact Groups / UVA 1345 Jamie's Contact Groups / ZOJ 2399 Jamie's Contact Groups ...
- A. Two Bases
A. Two Bases time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- Codeforces--602A--Two Bases(水)
Two Bases Time Limit: 1000MS Memory Limit: 262144KB 64bit IO Format: %I64d & %I64u Submit St ...
- 【42.59%】【codeforces 602A】Two Bases
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
随机推荐
- GitHub命令精简教程
Github其实也可以作为文件分享的地方,但是免费空间只有300M,所以不能存放大文件,否则可以成为一个分享资源的下载站,而且非常方便. 常用命令: git add . //添加所有的文件到索引 ...
- eval 如何定义函数
eval(compile('''def fun(): print 'bbb' ''', '<string>', 'exec')) fun()
- .NET笔试题(关于迭代的:遍历XML中的FileName)
一.使用迭代算法,遍历XML文件中所有的文件名 写一个函数返回文件名集合 在主函数中调用该方法: 以后有关迭代的都写到这儿
- SAR ADC简介
SAR型 (逐次逼近型) 摘要:逐次逼近寄存器型(SAR)模数转换器(ADC)占据着大部分的中等至高分辨率ADC市场.SAR ADC的采样速率最高可达5Msps,分辨率为8位至18位.SAR架构允许高 ...
- 7 -- Spring的基本用法 -- 8...
7.8 深入理解容器中的Bean 7.8.1 抽象Bean与子Bean 把多个<bean.../>配置中相同的信息提取出来,集中成配置模版------这个配置模版并不是真正的Bean,因此 ...
- CommonsChunkPlugin的一些总结
CommonsChunkPlugin 官方文档地址 https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin new ...
- iOS- static extern const
1.静态变量 static 什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用 ...
- 对指定文件生成数字摘要的MD5工具类
md5特点:压缩性.不可逆性,经常用于传值过程中的值加密或文件加密static char hexdigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', ...
- Js处理json数据
js中处理由ajax调用返回的json数据问题,可以通过使用JSON.parse方法将json字符串转化成javascript 对象.通过对象访问属性值. JSON.parse 只限于高版本的浏览器. ...
- ORACLE 定时任务JOB
http://www.cnblogs.com/xclw/archive/2009/12/04/1616945.html