![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
51nod
h1021456873
这个作者很懒,什么都没留下…
展开
-
51nod 1058 N的阶乘的长度 (Stirling公式)
输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。Input输入N(1 Output输出N的阶乘的长度Input示例6Output示例3取对数来找位数!#include#include#include#include#includeusing namespace std;in原创 2015-10-16 18:57:13 · 792 阅读 · 0 评论 -
51nod 1091 线段的重叠 (贪心)
X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长的。输出这个最长的距离。如果没有重叠,输出0。Input第1行:线段的数量N(2 <= N <= 50000)。第2 - N + 1行:每行2个数,线段的起点和终点原创 2015-10-17 17:05:04 · 615 阅读 · 0 评论 -
51nod 1073 约瑟夫环 (数学)
N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。Input2个数N和K,表示N个人,数到K出列。(2 Output最后剩下的人的编号Input示例3 2Output示例3原创 2015-10-16 18:36:27 · 983 阅读 · 0 评论 -
51nod 1008 N的阶乘 mod P
输入N和P(P为质数),求N! Mod P = ? (Mod 就是求模 %)例如:n = 10, P = 11,10! = 36288003628800 % 11 = 10Input两个数N,P,中间用空格隔开。(N < 10000, P < 10^9)Output输出N! mod P的结果。Input示例10 11Ou原创 2015-10-16 18:40:27 · 1284 阅读 · 0 评论 -
51nod 1090 3个数和为0 (二分_stl)
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。Input第1行,1个数N,N为数组的长度(0 <= N <= 1000)第2 - N + 1行:A[i](-10^9原创 2015-10-18 00:43:33 · 659 阅读 · 0 评论 -
51nod 1136 欧拉函数
对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。Input输入一个数N。(2 Output输出Phi(n)。Input示例8Output示原创 2015-10-17 16:28:54 · 940 阅读 · 0 评论 -
51nod 1433 0和5 (水题)
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。注意:1.这个数没有前导0,2.小K不需要使用所有的牌。Input每个测试数据输入共2行。第一行给出一个n,表示n张牌。(1<=n<=1000)第二行给出n个整数a[原创 2015-11-03 18:01:50 · 901 阅读 · 0 评论 -
51nod 1278 相离的圆 (排序)
平面上有N个圆,他们的圆心都在X轴上,给出所有圆的圆心和半径,求有多少对圆是相离的。例如:4个圆分别位于1, 2, 3, 4的位置,半径分别为1, 1, 2, 1,那么{1, 2}, {1, 3} {2, 3} {2, 4} {3, 4}这5对都有交点,只有{1, 4}是相离的。Input第1行:一个数N,表示圆的数量(1 <= N <= 50000)第2 - N原创 2015-11-04 00:28:28 · 668 阅读 · 0 评论 -
51nod 1267 4个数和为0(二分查找)好题!!!
给出N个整数,你来判断一下是否能够选出4个数,他们的和为0,可以则输出"Yes",否则输出"No"。Input第1行,1个数N,N为数组的长度(4 <= N <= 1000)第2 - N + 1行:A[i](-10^9 Output如果可以选出4个数,使得他们的和为0,则输出"Yes",否则输出"No"。Input示例5-11-524原创 2015-10-18 11:34:03 · 2112 阅读 · 1 评论 -
51nod 1179 最大的最大公约数 (好题!!!!)
给出N个正整数,找出N个数两两之间最大公约数的最大值。例如:N = 4,4个数为:9 15 25 16,两两之间最大公约数的最大值是15同25的最大公约数5。Input第1行:一个数N,表示输入正整数的数量。(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应输入的正整数.(1 Output输出两两之间最大公约数的最大值。原创 2015-10-14 22:38:40 · 1378 阅读 · 0 评论 -
51nod 1174 区间中最大的数 (线段树+RMQ)
给出一个有N个数的序列,编号0 - N - 1。进行Q次查询,查询编号i至j的所有数中,最大的数是多少。例如: 1 7 6 3 1。i = 1, j = 3,对应的数为7 6 3,最大的数为7。(该问题也被称为RMQ问题)Input第1行:1个数N,表示序列的长度。(2 <= N <= 10000)第2 - N + 1行:每行1个数,对应序列中的元素。(0 <原创 2015-10-18 16:04:44 · 819 阅读 · 0 评论 -
51nod 1009 数字1的数量 (统计1的总个数,好题)
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 Output输出包含1的个数Input示例12Output示例5思路,根据n的位数,我们统计一下个位、原创 2015-10-19 15:38:38 · 1069 阅读 · 0 评论 -
51nod 1289 大鱼吃小鱼 (栈_STL)
有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼?Input第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分原创 2015-10-19 19:48:10 · 600 阅读 · 0 评论 -
51nod 1092 回文字符串 (LCS_DP)
回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。每个字符串都可以通过向中间添加一些字符,使之变为回文字符串。例如:abbc 添加2个字符可以变为 acbbca,也可以添加3个变为 abbcbba。方案1只需要添加2个字符,是所有方案中添加字符数量最少的。Input输入一个字符串Str,Str的长度 Output输出最少添加多原创 2015-10-18 23:35:50 · 1203 阅读 · 0 评论 -
51nod 1419 最小公倍数挑战 (找规律题)
几天以前,我学习了最小公倍数。玩得挺久了,想换换口味。我不想用太多的数字,我想从1到n中选三个数字(可以相同)。使得他们的最小公倍数最大。Input单组测试数据。第一行有一个整数n (1≤n≤1,000,000)。Output输出一个整数表示选三个数字的最大的最小公倍数。Input示例97Output示例504210原创 2015-11-05 20:13:57 · 511 阅读 · 0 评论 -
51nod 1024 矩阵中不重复的元素 (STL)
一个m*n的矩阵。该矩阵的第一列是a^b,(a+1)^b,.....(a + n - 1)^b第二列是a^(b+1),(a+1)^(b+1),.....(a + n - 1)^(b+1).......第m列是a^(b + m - 1),(a+1)^(b + m - 1),.....(a + n - 1)^(b + m - 1)(a^b表示a的b次方)下面是一原创 2015-11-04 22:19:28 · 814 阅读 · 0 评论 -
A. 2Char (暴力)
Andrew often reads articles in his favorite magazine 2Char. The main feature of these articles is that each of them uses at most two distinct letters. Andrew decided to send an article to the magazine原创 2015-11-05 10:52:35 · 528 阅读 · 0 评论 -
51nod 1065 最小正子段和 (贪心_好题)
N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子序列(a[i],a[i+1],…a[j]),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的。例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N+1行原创 2015-10-05 23:48:26 · 946 阅读 · 0 评论 -
51nod 1384 全排列 (回溯||STL)
给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",输出为:112311321213123113121321211321312311311231213211Input输入一个字符串S(S的长度 Output输出S所包含的字符组成的所有原创 2015-10-20 14:17:45 · 932 阅读 · 0 评论 -
51nod 1051 最大子矩阵和 (dp_good)
一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2Input第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。第2 - N + 1行:矩阵中的元素,每行原创 2015-10-07 17:54:58 · 780 阅读 · 0 评论 -
51nod 1031 骨牌覆盖 (找规律题_数学)
在2*N的一个长方形方格中,用一个1*2的骨牌排满方格。问有多少种不同的排列方法。例如:2 * 3的方格,共有3种不同的排法。(由于方案的数量巨大,只输出 Mod 10^9 + 7 的结果)Input输入N(N Output输出数量 Mod 10^9 + 7Input示例3Output示例3原创 2015-10-21 20:49:23 · 1480 阅读 · 0 评论 -
51nod 最小距离之和-中位数
1 中位数 中位数:将数组大小为n的数据,从大到小,或者是从小到大排列,那么当n为奇数的时候,中位数就是(n+1)/2的这个数,当n为偶数的时候,中位数就是n/2和(n+1)/2这二个数据的平均数。中位数:也就是选取中间的数。一种衡量集中趋势的方法。要找中位数,首先需要从小到大排序,例如这组数据:23、29、20、32、23、21、33、25;我们将数据排序20、21、23原创 2015-11-07 14:17:29 · 540 阅读 · 0 评论 -
51nod 1108 距离之和最小 V2
三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小的距离之和。点(x1,y1,z1)到(x2,y2,z2)的曼哈顿距离就是|x1-x2| + |y1-y2| + |z1-z2|。即3维坐标差的绝对值之和。Input第1行:点的数量N。(2 <= N <= 10000)第2 - N + 1行:每行3个整数,中间用空格分隔,表示点的位置原创 2015-11-07 10:21:33 · 584 阅读 · 0 评论 -
51nod 1181 质数中的质数(质数筛法)
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。Input输入一个数N(N Output输出>=N的最小的质数中的质数。Input示例20Output示例31原创 2015-10-21 23:57:48 · 588 阅读 · 0 评论 -
51nod 1284 2 3 5 7的倍数(容斥原理)
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 Output输出不是2 3 5 7的倍数的数共有多少。Input示例10Output示例1#include#include#includeusing namespace原创 2015-10-22 00:01:53 · 827 阅读 · 0 评论 -
51nod 1138 连续整数的和 (数学公式_转换思想,好题吧)
给出一个正整数N,将N写为若干个连续数字和的形式(长度 >= 2)。例如N = 15,可以写为1 + 2 + 3 + 4 + 5,也可以写为4 + 5 + 6,或7 + 8。如果不能写为若干个连续整数的和,则输出No Solution。Input输入1个数N(3 Output输出连续整数中的第1个数,如果有多个按照递增序排列,如果不能分解为若干个连续整数原创 2015-10-22 01:47:07 · 682 阅读 · 0 评论 -
51nod 循环数组最大子段和 (dp)
N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n],a[1],a[2]这样的序列)。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1原创 2015-10-06 18:18:02 · 533 阅读 · 0 评论 -
51nod 最长公共子序列 (DP+回溯)
输入第1行:字符串A第2行:字符串B(A,B的长度 输出输出最长的子序列,如果有多个,随意输出1个。输入示例abcicbaabdkscab输出示例abca#include#include#include#includeusing namespace std;c原创 2015-10-09 01:21:28 · 587 阅读 · 0 评论 -
51nod 1079 中国剩余定理 (模板)
一个正整数K,给出K Mod 一些质数的结果,求符合条件的最小的K。例如,K % 2 = 1, K % 3 = 2, K % 5 = 3。符合条件的最小的K = 23。Input第1行:1个数N表示后面输入的质数及模的数量。(2 <= N <= 10)第2 - N + 1行,每行2个数P和M,中间用空格分隔,P是质数,M是K % P的结果。(2 Outpu原创 2015-10-24 10:16:55 · 1835 阅读 · 0 评论 -
51nod 1212 无向图最小生成树 (Kruskal)
N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。Input第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 <= N <= 1000, 1 <= M <= 50000)第2 - M + 1行:每行3个数S E W,分别表示M条边的2个顶点及权值。(1 Output输出最小生成树的所有边的权值之和。Input示原创 2015-10-24 10:58:01 · 840 阅读 · 0 评论 -
51nod 编辑距离 (DP)
给定两个字符串S和T,对于T我们允许三种操作:(1) 在任意位置添加任意字符(2) 删除存在的任意字符(3) 修改任意字符 问最少操作多少次可以把字符串T变成S? 例如: S= “ABCF” T = “DBFG”那么我们可以(1) 把D改为A(2) 删掉G(3) 加入C所以答案是3。输入第原创 2015-10-09 16:03:59 · 392 阅读 · 0 评论 -
51nod 01背包(DP)
输入第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000)第2 - N + 1行,每行2个整数,Wi和Pi,分别是物品的体积和物品的价值。(1 输出输出可以容纳的最大价值。输入示例3 62 53 84 9输出示例原创 2015-10-09 19:36:02 · 353 阅读 · 0 评论 -
51nod 最长单增子序列 (dp+二分)
输入第1行:1个数N,N为序列的长度(2 <= N <= 50000)第2 - N + 1行:每行1个数,对应序列的元素(-10^9 输出输出最长递增子序列的长度。输入示例8516824510输出示例5#include#in原创 2015-10-09 18:15:54 · 699 阅读 · 0 评论 -
51nod 1097 拼成最小的数 (排序)
1097 拼成最小的数基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注设有n个正整数,将它们联接成一排,组成一个最小的多位整数。例如:n=2时,2个整数32,321连接成的最小整数为:32132,n=4时,4个整数55,31,312, 33 联接成的最小整数为:31原创 2015-11-09 23:07:55 · 796 阅读 · 0 评论 -
51nod 1072 威佐夫游戏 (博弈论)
问题:首先有两堆石子,博弈双方每次可以取一堆石子中的任意个,不能不取,或者取两堆石子中的相同个。先取完者赢。分析:首先我们根据条件来分析博弈中的奇异局势 第一个(0 , 0),先手输,当游戏某一方面对( 0 , 0)时,他没有办法取了,那么肯定是先手在上一局取完了,那么输。第二个 ( 1 , 2 ),先手输,先手只有四种取法,1)取 1 中的一个,原创 2015-11-09 23:50:14 · 1768 阅读 · 0 评论 -
51nod 1276 岛屿的数量(贪心策略__锻炼思维)
有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。给出N个岛的高度。然后有Q个查询,每个查询给出一个海平面的高度H,问当海平面高度达到H时,海上共有多少个岛屿。例如:岛屿的高度为:{2, 1, 3, 2, 3}, 查询为:{0, 1, 3, 2}。当海面高度为0时,所有的原创 2015-11-10 23:06:04 · 652 阅读 · 0 评论 -
51nod 1035 最长的循环节
正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求<=n的数中,倒数循环节长度最长的那个数。1/6= 0.1(6) 循环节长度为11/7= 0.(142857) 循环节长度为61/9= 0.(1) 循环节长度为1Input输入n(10 Output输出Input示例10Out原创 2015-11-09 19:01:18 · 401 阅读 · 0 评论 -
51nod 正整数分组(dp_思考题)
将一堆正整数分为2组,要求2组的和相差最小。例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。 整数个数n输入第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N 输出输出这个最小差输入示例512345原创 2015-10-09 21:22:17 · 848 阅读 · 0 评论 -
51nod 多重背包问题 (dp)
输入第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <= W <= 50000)第2 - N + 1行,每行3个整数,Wi,Pi和Ci分别是物品体积、价值和数量。(1 输出输出可以容纳的最大价值。输入示例3 62 2 53 3 81 4 1原创 2015-10-09 23:39:14 · 598 阅读 · 0 评论 -
51nod 1082 与7无关的数 (打表)
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7无关的正整数的平方和。例如:N = 8,Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 Output共T行,每行一个数,对应T个测试的计原创 2015-10-24 17:29:05 · 1907 阅读 · 0 评论