- 博客(19)
- 收藏
- 关注
原创 51 Nod 1130 N的阶乘的长度 V2(斯特林近似)
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 第2 - T + 1行:每行1个数N。(1 Output 共T行,输出对应的阶乘的长度。 Input示例 3 4 5 6 Output示例 2 3 3 题意:……………… 思路:本菜鸡第一次交
2017-06-30 18:23:20 439
原创 51Nod 1058 N的阶乘的长度
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。 Input 输入N(1 Output 输出N的阶乘的长度 Input示例 6 Output示例 3 题意:………… 思路:一开始感觉要用字符串来写,然而并没有写出来…………查了资料才知道用的是斯特林近似,公式为:n!=sqrt((2*PI*n)*(n/e)^n); 下
2017-06-29 23:44:58 189
原创 51Nod 1089 最长回文子串 V2(Manacher算法)
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。 输入一个字符串Str,输出Str里最长回文子串的长度。 Input 输入Str(Str的长度 Output 输出最长回文子串的长度L。 Input示例 daabaac Output示例 5 题意:。。。。 思路:这回的字符串长度变大,所以肯定不能用暴力了,在此就需要用
2017-06-29 23:38:27 398
原创 HPU2016级暑期集训选拔赛 台阶
在玩电脑游戏“Lucky Luke”时,Bom到达了一个场景,Lucky必须爬上一个由n个台阶组成的楼梯。 楼梯从下到上编号为1到n。 Lucky可能会往上爬一步,或者可能一次跳两步。 然而,一些台阶被打破了,Lucky不能站在上面。 一开始,Lucky站在第一阶(第一阶永远不会破)。 突然,Bom想到了一个问题:Lucky爬楼梯到第n阶楼梯有多少种方法?
2017-06-28 09:13:37 181
原创 51Nod 1118 机器人走方格
M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。 Input 第1行,2个数M,N,中间用空格隔开。(2 Output 输出走法的数量。 Input示例 2 3 Output示例 3 题意:………… 思路:简单dp题,因为机器人只能向下或者向右走,
2017-06-28 09:02:14 209
原创 51Nod 1088 最长回文串
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。 输入一个字符串Str,输出Str里最长回文子串的长度。 Input 输入Str(Str的长度 Output 输出最长回文子串的长度L。 Input示例 daabaac Output示例 5 题意:。。。。 思路:从某个字符向两边遍历,用一变量记录比较即可,因为数据较小
2017-06-27 11:51:21 211
转载 素数打表的四种解法
题目:给出一个正整数n,打印出所有从1~n的素数(即质数); 1.傻瓜解法 复制代码 int i,n; while(scanf("%d",&n)!=EOF) { for(i=2;i<n;i++) if(n%i==0) break; if(i==n) printf("YES\n"); else printf("NO\n"); }
2017-06-26 08:34:32 4276
原创 51Nod 1057 N的阶乘
输入N求N的阶乘的准确值。 Input 输入N(1 Output 输出N的阶乘 Input示例 5 Output示例 120 题意:。。。。 思路:说实话我一开始真没想到什么好算法,暴力肯定是不行的,看了看博客才知道原来是采用分割的方法,假如你要将结果分割成m位的话,就在计算的时候对1em取余,最后格式化输出就好了;(真是大神啊QAQ) 下面
2017-06-23 16:29:30 192
原创 51Nod 1072 威佐夫游戏
有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。 例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 第2 - T
2017-06-23 16:14:32 260
原创 51Nod 1049 最大子段和
N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。 Input 第1行:整数序列的长度N(2 第2 - N + 1行:N个整数(-10^9 Output 输出最大子段和。
2017-06-23 16:03:31 145
原创 51Nod 1069 Nim游戏
有N堆石子。A B两个人轮流拿,A先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N及每堆石子的数量,问最后谁能赢得比赛。 例如:3堆石子,每堆1颗。A拿1颗,B拿1颗,此时还剩1堆,所以A可以拿到最后1颗石子。 Input 第1行:一个数N,表示有N堆石子。(1 第2 - N + 1行:N堆
2017-06-23 15:58:34 190
原创 51Nod 1046 A^B Mod C
给出3个正整数A B C,求A^B Mod C。 例如,3 5 8,3^5 Mod 8 = 3。 Input 3个正整数A B C,中间用空格分隔。(1 Output 输出计算结果 Input示例 3 5 8 Output示例 3 题意:中文题。。。 思路:快速幂模板。。注意范围就可; 下面附上代码: #include using nam
2017-06-23 15:52:16 287
原创 51Nod 1066 Bash游戏
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。 例如N = 3,K = 2。无论A如何拿,B都可以拿到最后1颗石子。 Input 第1行:一个数T,表示后面用作输入测试的数的数量。(1 第2 - T + 1行:每行2个数N,K。中间用空格分隔。(1
2017-06-23 15:48:34 220
原创 51 Nod 1006 最长公共子序列Lcs
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。 比如两个串为: abcicba abdkscab ab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。 Input 第1行:字符串A 第2行:字符串B (A,B的长度 Output 输出最长的子序列,如果有多个,随意输出1个。 Input示例
2017-06-23 15:40:03 248
原创 51Nod 1027 大数乘法
给出2个大整数A,B,计算A*B的结果。 Input 第1行:大数A 第2行:大数B (A,B的长度 = 0) Output 输出A * B Input示例 123456 234567 Output示例 28958703552 题意:中文题。。 思路:大数最根本的思想即是将数字化成字符串,再按位进行操作,当然乘除和加减不太一样,这个题也没有
2017-06-21 18:54:27 240
原创 51Nod 1019 逆序数
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。给出一个整数序列,求该序列的逆序数。 Input 第1行:N,N为序列的长度(n <= 50000) 第2 - N + 1行:序列中的元素(0 <= A[i] &...
2017-06-21 18:46:45 499 1
原创 51Nod 1011 最大公约数GCD
输入2个正整数A,B,求A与B的最大公约数。 Input 2个数A,B,中间用空格隔开。(1 Output 输出A与B的最大公约数。 Input示例 30 105 Output示例 15 题意:中文题。。。 思路:欧几里得模板题,辗转相除法; 下面附上代码: #include using namespace std; typedef long
2017-06-21 18:33:48 192
原创 51Nod 1005 大数加法
1005 大数加法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出2个大整数A,B,计算A+B的结果。 Input 第1行:大数A 第2行:大数B (A,B的长度 Output 输出A + B Input示例 68932147586 468711654886 Output示例 53764
2017-06-21 18:29:18 183
原创 51Nod 1008
输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %) 例如:n = 10, P = 11,10! = 3628800 3628800 % 11 = 10 Input 两个数N,P,中间用空格隔开。(N Output 输出N! mod P的结果。 Input示例 10 11 Output示例 10 题意:中文题。。。 思路
2017-06-21 18:24:10 653
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人