Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
这道题目的contest report说的有点疑问Ridiculous Addition 这个是一个比较简单的题目,要算出和的每一位,就需要两个数列的每一位,所以问题转化为能够在短时间内回应关于数列第k位的询问。 其实很简单:首先利用组合计数算出那个数字所在的整个数字的位数;然后组合计数算出结果。 举个例子 K=30 那么看第一个数列一位数有9个共9位,两位数有90个共180位所以是一个两位数,然后可以知道是第11个两位数的第1位是20的第一位,也就是2;同样的得出第二个数列的第30位是6,然后得出结果8。 不过还有进位的问题,解决的问题很简单:看它的后一位就可以了。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 有人会问:那会不会循环得很长?其实不会的,有一个整数的Hash算法叫做平方取中法就是一个数的平方取中间部分,所以可以看出平方数的中部分类似于随机数所以进位情况不确定。 问题: 看后一位就可以了吗?为什么? 如果后一位是4和5呢?怎么就肯定没有进位呢? 4和5的后一位可能有进位啊,如果进了,那么4和5也就要进了。 Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator