输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9) Output 共T行,输出对应的阶乘的长度. Input示例 3 4 5 6 Output示例 2 3 3 #include <cstdio> #include <string> #include <cstrin…
1130 N的阶乘的长度 V2(斯特林近似) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9) Output 共T行,输出对应的阶乘的长度. Input示例 3 4 5 6 Output示例 2 3…
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9)   Output 共T行,输出对应的阶乘的长度.   Input示例 3 4 5 6   Output示例 2 3 3 斯特林公式是一条用来取n阶乘近似值的数学公式.一般来说,当n很大的时候,n阶乘的计算量十分大 所以斯特灵公式十分好用,而且…
[算法]数学 [题解]斯特林公式: #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const double pi=3.1415926535898,e=2.718281828459; int main() { int t; scanf("%d",&t); ;i<=t;i++) { long long n; scanf("%lld…
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3 很基础的题目,算是复习了一波log运算吧. 一个数的位数就是其对10取对数之后+1,那么: log10(n!) = log10(1) + ... + log10(n). 51Nod 上面数据似乎不是很严,直接用这个也过了. 还有一种算法.点击进入 //Asimple #include <…
1058 N的阶乘的长度基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.Input输入N(1 <= N <= 10^6)Output输出N的阶乘的长度Input示例6Output示例3思路:位数公式 则有: 循环遍历即可 代码: #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with…
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3解:解法一: 上一篇刚讲了斯特林公式(x!=sqrt(2*Pi*n)*(n/e)^n),这里就用到了. x的位数计算公式:len=log10(x)+1; 代入斯特林公式并化简指数得:len=0.5*log10(2*Pi*n)+n*log10(n/4); 如下: #include <stdi…
输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. 输入 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9) 输出 共T行,输出对应的阶乘的长度. 输入样例 3 4 5 6 输出样例 2 3 3 对于n来说,要是求阶乘的话数据范围需要达到10^9以上才可以使用斯特林公式,否则会精度损失,造成误差比较大.但是要是求的是n的阶乘的长度的话,可以利用公式((log1…
求某个大数的阶乘的位数 . 得到的值  需要 +1 得到真正的位数 斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义.在数学分析中,大多都是利用Г函数.级数和含参变量的积分等知识进行证明或推导,很为繁琐冗长.近年来,一些国内外学者利用概率论中的指数分布.泊松分布.χ²分布证之. #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #incl…
1058 N的阶乘的长度  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3 利用斯特林公式:长度l=lgN!+1: #include<bits/stdc++.h> using namespace std; const int maxn=1e…
1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3 * n!的长度等于log10(n!) import java.util.*; public class Main { public static void main(String[] args) { // TODO Au…
1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3 n的长度len(n)=log10(n)+1,直接去掉小数点后的部分所以len(n!)=log10(1*2*……*n)=log10(1)+log10(2)+……+log10(n…
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3.   Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 1000) 第2 - T + 1行:每行1个数N.(1 <= N <= 10^9) Output 共T行,输出对应的阶乘的长度. Input示例 3 4 5 6 Output示例 2 3 3 初次用hash求回文串 .屠龙宝刀点击就送 #inclu…
1058 N的阶乘的长度  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的10进制表示的长度.例如6! = 720,长度为3. Input 输入N(1 <= N <= 10^6) Output 输出N的阶乘的长度 Input示例 6 Output示例 3 斯特林公式: 10为底取对数计算即可 #include<stdio.h> #include<stdlib.h> #include<string.h…
下面我们来看一个容易让人蒙圈的问题:N的阶乘 mod P. 51Nod 1008 N的阶乘 mod P 看到这个可能有的人会想起快速幂,快速幂是N的M次方 mod P,这里可能你就要说你不会做了,其实你会,为什么呢,只要你明白快速幂的原理,你就会发现他们两个其实差不多是同一个问题. 重要原理:积的取模=取模的积再取模. 快速幂不过是一直乘的相同的的数,这里仅仅是改成乘以不同的数而已. 题目: 输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %) 例如:n = 10, P…
题目链接:https://vjudge.net/problem/51Nod-1089 1089 最长回文子串 V2(Manacher算法) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度.   Input 输入Str(Str的长度 <= 100000) Output 输出最长回文子串的长度L. Input示例 daabaac Outp…
1089 最长回文子串 V2(Manacher算法)   回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度.   输入 输入Str(Str的长度 <= 100000) 输出 输出最长回文子串的长度L. 输入样例 daabaac 输出样例 5 虽然题目要求用Manacher算法,但由于算法进阶指南上有一种hash解法,我就照着思路敲了一边代码,大概就是用O(N)的时间处理字符串和他反向后字符串的hash值,然后再用二分…
前言 \(HE\)沾\(BJ\)的光成功滚回家里了...这堆最大子段和的题抠了半天,然而各位\(dalao\)们都已经去做概率了...先%为敬. 引流之主:老姚的博客 最大M子段和 V1 思路 最简单的ver.数据范围在5000以内,可以考虑暴力一点的做法\(O(n^3)\),定义\(dp\)状态\(dp[i][j]\),递推式子: \[dp[i][j]=max\{dp[i-1][j],dp[k][j-1]\}+a[i]\ (j-1\le k<i) \] 其中\(i\)表示序列中前\(i\)个元…
阶乘是乘法 , 乘法的话 , 几位数*几位数的位数 就是 哪两个几位数相加 .  这个可以用log10来解决 , 所以有如下代码 . #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<vector> #include<set>…
输入N求N的阶乘的准确值.   Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120 压位: 每个数组元素存多位数字 #include <cstdio> #include <string> #include <cstring> #include <algorithm> #include <iostream> #include <cmath> usin…
1084 矩阵取数问题 V2  基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向上和向左走.两次如果经过同一个格子,则该格子的奖励只计算一次,求能够获得的最大价值. 例如:3 * 3的方格. 1 3 3 2 1 3 2 2 1 能够获得的最大价值为:17.1 -> 3 -> 3 -> 3 -&…
1057 N的阶乘 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题   输入N求N的阶乘的准确值.   Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120 #include <bits/stdc++.h> #define clear(a) memset(a,0,sizeof(a)) using namespace std; typedef long long ll; const…
题目内容: 假设有这样一个三位数m,其百位.十位和个位数字分别是a.b.c,如果m= a!+b!+c!,则这个三位数就称为三位阶乘和数(约定0!=1).请编程计算并输出所有的三位阶乘和数. 函数原型: long Fact(int n): 函数功能:计算n的阶乘 输入格式: 无 输出格式:"%d\n" 为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中. 时间限制:500ms内存限制:32000kb   #include<stdio.h>long F…
[算法]数学 [题解]n!的位数相当于ans=log10(n!)上取整,然后就可以拆出来加了. 可以用log10(i)或log(i)/log(10) 阶乘好像有个斯特林公式…… #include<cstdio> #include<cmath> using namespace std; int main() { int n; scanf("%d",&n); ; ;i<=n;i++)ans+=log10(i); printf(); ; }…
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串. 输入一个字符串Str,输出Str里最长回文子串的长度. 收起   输入 输入Str(Str的长度 <= 100000) 输出 输出最长回文子串的长度L. 输入样例 daabaac 输出样例 5 代码: #include <iostream> #include <cstdio> #include <cstring> #define MAX 100000 #define DMAX 10000…
题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1057&judgeId=605203 使用压位进行优化,即一位数存多位数,例如当设置MOD=1e8时,一位数可以存8位数: 其次,注意尾数0,因为压位,一位需要输出8个0,故第一个数应单独输出: 这样优化可以到100ms以内: #include<iostream> #include<cstring> #include<cstdio&g…
输入N求N的阶乘的准确值.   Input 输入N(1 <= N <= 10000) Output 输出N的阶乘 Input示例 5 Output示例 120解:这其实是MOD进制,将一个int或者long long数据类型作为一个数位,满MOD进一(本题中MOD=1000000000). (注意选择合适的数据类型,避免计算过程中数据溢出.) #include <stdio.h> #define MOD 1000000000 ]; int main() { int n; while…
1435 位数阶乘 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 X是一个n位数的正整数 (x=a0a1...an−1) 现在定义 F(x)=∏i=0n−1(ai!)  , 比如F(135)=1!*3!*5!=720. 我们给定一个n位数的整数X(至少有一位数大于1,X中可能有前导0), 然后我们去找一个正整数(s)符合以下条件: 1.这个数尽可能大, 2.这个数中不能含有数字0或1. 3.F(s)=F(x)…
同上篇, client端也需要同样规则验证 compact_strlen: function(str) { var strlen = 0; for(var i =0; i<str.length;i++) { var char=str.charAt(i); if(/[u00-uFF]/g.test(char)) { strlen++; }else{ strlen+=2; } } return strlen; } 后来 有了一些修改 compact_strlen: function(data) {…
输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)   例如:n = 10, P = 11,10! = 3628800 3628800 % 11 = 10   Input 两个数N,P,中间用空格隔开.(N < 10000, P < 10^9)   Output 输出N! mod P的结果.   Input示例 10 11   Output示例 10 如果用普通的方法就会wa,如下所示 #include <iostream> #include <st…