哪个网站建设最好,如何建设网站pdf下载,做一个网站如何做,大庆城乡建设局网站首页地址#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1141 题意#xff1a;atmel公司1960年发布4bits的处理器#xff0c;每10年翻一番。给一个年份#xff0c;问最近一次发布的处理器能运算的n!最大的n是多少。 mark#xff1a;最大的处理器位数是2160年的4194304…地址http://acm.hdu.edu.cn/showproblem.php?pid1141 题意atmel公司1960年发布4bits的处理器每10年翻一番。给一个年份问最近一次发布的处理器能运算的n!最大的n是多少。 mark最大的处理器位数是2160年的4194304bits。要算n!的二进制表示位直接算很难可以变成求log2后取整加1。然后因为log2(n!) log2(1) log2(2)...log2(n)所以直接O(n)就可以了。大概算到30w可以把500wbits的算出来之后按输入二分。 代码 # include stdio.h# include math.hint dp[300010] ;void init(){int i ;double sum 0 ;for (i 2 ; i 300000 ; i) { sum log2(i*1.0) ; dp[i] ((int)sum) 1 ; }}int main (){int n, l, r, mid ; init() ;while (~scanf (%d, n), n) { n 1 ((n-1940) / 10) ; l 1, r 300000 ; while (lr-1) { mid (lr)/2 ;if (dp[mid] n) l mid ;else r mid ; }if (dp[r] n) l r ; printf (%d\n, l) ; }return 0 ;} 转载于:https://www.cnblogs.com/lzsz1212/archive/2012/02/03/2336406.html