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 ...
随机推荐
- 添加PATH
在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信息时时, ...
- localStorage、sessionStorage详解,以及storage事件使用
有关localStorage和sessionStorage的特性. localStorage本身带有方法有 添加键值对:localStorage.setItem(key,value),如果key存在时 ...
- 初学JqueryMobile(一)
一.初学2个data标签 标签名称 标签属性 属性说明 备注 data-role page 容器或试图 表示容器的作用 header 标题 content 内容 footer 页脚 data-tran ...
- 不能正确获得上次构建以来的Commit
不能正确获得上次构建以来的Commit 如何解决?
- 上传文件到服务器端后进一步推送到sftp服务器
扩展安装 要想sftp服务端发送文件,就需要php脚本具有作为ssh客户端的能力,所以需先为php安装如下扩展 openssl openssl-dev libssh php ssh 扩展 按照下面的命 ...
- python实现雅虎拍卖后台自动回复卖家消息
前些时间,公司让做一个自动回复卖家信息的程序,现在总结下(用python实现的) 1.登陆雅虎拍卖后台手动获取cookie文件 #coding=utf-8 import sqlite3 import ...
- 韩顺平_JAVA_视频教程_下载(打开迅雷,直接复制链接地址即可下载)
ed2k://|file|韩顺平.循序渐进学.java.从入门到精通.第0讲-开山篇.avi|37021064|f4fb2fb3db938a642146ccc8f0935fed|h=ao2k3ep7p ...
- TDirectory.GetFiles获取指定目录下的文件
使用函数: System.IOUtils.TDirectory.GetFiles 所有重载: class function GetFiles(const Path: string): TStringD ...
- linq 动态排序
/// <summary> /// 排序 /// </summary> /// <typeparam name="T"></typepar ...
- qt 5 小练习 简易画板
如何在窗口上画线?用一根根线来拼凑图案呢? 想必大家都知道点的集合是线,而线的集合就是很多线啦,用线的集合我们能拼凑出许许多多的图案.于是我就要记录自己跟着老师的学习之路啦: 既然有集合的话,势必要用 ...