Revolving Digits(hdu4333)】的更多相关文章

Revolving Digits Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 24215    Accepted Submission(s): 5268 Problem Description One day Silence is interested in revolving the digits of a positive int…
Revolving Digits   Description One day Silence is interested in revolving the digits of a positive integer. In the revolving operation, he can put several last digits to the front of the integer. Of course, he can put all the digits to the front, so…
One day Silence is interested in revolving the digits of a positive integer. In the revolving operation, he can put several last digits to the front of the integer. Of course, he can put all the digits to the front, so he will get the integer itself.…
http://acm.hdu.edu.cn/showproblem.php?pid=4333 题意 一个数字,依次将第一位放到最后一位,问小于本身的数的个数及等于本身的个数和大于本身的个数,但是要注意重复的不再计算 分析 当这个串有循环节时才会出现重复串,用KMP的next数组来计算循环节:len-next[len].最后将得到的答案除以循环节个数即可.然后用扩展KMP,求出主串的后缀与模式串的前缀的最长公共前缀,这里的模式串是原串,而主串则是将两个原串连接起来.利用extend数组,当exte…
1.给一个数字字符串s,可以把它的最后一个字符放到最前面变为另一个数字,直到又变为原来的s.求这个过程中比原来的数字小的.相等的.大的数字各有多少. 例如:字符串123,变换过程:123 -> 312 -> 231 -> 123 因为:312>123, 231>123, 123=123 所以答案是:0 1 2 2.令str1=s,str2=s+s,然后str1作为子串,str2作为主串,进行扩展kmp求出str2[i...len2-1]与str1[0...len1-1]的最长…
题意:就是给你一个数字,然后把最后一个数字放到最前面去,经过几次变换后又回到原数字,问在这些数字中,比原数字小的,相等的,大的分别有多少个.比如341-->134-->413-->341,所以和原数字相比,比原数字小的有一个,相等的有一个,大的有一个. /* 如果比较两个字符串,就比较第一位不一样的,那我们就需要找出所有字符串和已知字符串的前缀公共部分. 在已知字符串后面载copy一份,然后做exkmp就行了. 需要注意的是,相同字符串只能出现一次,所以先求一遍循环节. 有一篇关于exk…
Given Length and Sum of Digits... 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/F Description You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m…
题目链接:Permute Digits 题意: 给出了两个数字a,b(<=1e18),保证a,b都不带前缀0.用a的字符重组一个数字使这个值最大且小于b.(保证这个值存在) 题解: 这题遇到了不止一遍了,但是每次都会写错-所以感觉很有必要写下来.看到这题,我的第一想法是贪心每次都取最大的.但是这样其实存在很大的漏洞,因为字符个数是有限的如果小的数被取完了大的数填充进去也不符合条件.这题要按DFS的思路去做才行.这里给出按贪心的做法的一组错误数据. a: 123456789123456789 b:…
C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You have a positive integer m and a non-negative integer s. Your task is to find the smallest and the la…
题目大意:让求n!在base进制下的位数以及末尾0的连续个数. 题目分析:一个m位的b进制数N,最小是b^(m-1),最大不超过b^m,即b^(m-1)≤N<b^m.解不等式,得log10(N)/log10(b)<m≤log10(N)/log10(b)+1. 至于0的个数,要对n!分解质因数,对base分解质因数.看n!的质因数中能凑出多少个base.能凑出的base的个数就是末尾0的个数.设n!与base的共同质因数所构成的集合为s1.base的质因数构成的集合为s2,则末尾0的个数就是mi…