
OpenJudge&ACM算法
qq_26919935
这个作者很懒,什么都没留下…
展开
-
2988:计算字符串距离(2.6基本算法之动态规划)
2988:计算字符串距离总时间限制: 1000ms 内存限制: 65536kB 描述 对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为: 修改一个字符(如把“a”替换为“b”) 删除一个字符(如把“traveling”变为“travelng”)比如对于“abcdefg”和“abcdef”两个字符串来说,我们认为可以通过增加/减少一个“g”的方式来达到目的。无论增加还是减少原创 2017-09-13 20:34:13 · 617 阅读 · 0 评论 -
逆波兰表达式(基本算法之递归和自调用函数)
逆波兰表达式(基本算法之递归)总时间限制: 1000ms 内存限制: 65536kB描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。输入输入为一原创 2017-08-04 10:19:12 · 2686 阅读 · 0 评论 -
菲波那契数列(2)-基本算法之递归变递推
菲波那契数列(2)-基本算法之递归变递推总时间限制: 1000ms 内存限制: 65536kB 描述 菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。 给出一个正整数a,要求菲波那契数列中第a个数对1000取模的结果是多少。 输入 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1 <= a <= 100000原创 2017-08-04 11:12:20 · 800 阅读 · 0 评论 -
1757:神奇的口袋(2.7基本算法之算法效率)
1757:神奇的口袋总时间限制: 10000ms 内存限制: 65536kB描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选原创 2017-08-08 10:54:08 · 475 阅读 · 2 评论 -
6377:生日相同 2.0(3.1数据结构之结构)
6377:生日相同 2.0总时间限制: 1000ms 内存限制: 65536kB描述在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。输入第一行为整数n,表示有n个学生,n ≤ 180。此后每行包含一个字符串和两个整数,分别表示学生的名字(名字第一个字母大写,其余小写,不含空格,且长度小于20)和出生月(1 ≤ m ≤ 12)原创 2017-08-08 13:57:42 · 1712 阅读 · 0 评论 -
1748:约瑟夫问题(3.2数据结构之指针和链表)
1748:约瑟夫问题总时间限制: 1000ms 内存限制: 65536kB描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。输入每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m原创 2017-08-09 09:48:05 · 997 阅读 · 0 评论 -
2729:Blah数集(3.4数据结构之队列)
2729:Blah数集总时间限制: 3000ms 内存限制: 65536kB 描述 大数学家高斯小时候偶然间发现一种有趣的自然数集合Blah,对于以a为基的集合Ba定义如下: (1) a是集合Ba的基,且a是Ba的第一个元素; (2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba中; (3)没有其他元素在集合Ba中了。 现在小高斯想知道如果将集合Ba中元素按照升序排列,第N个元素原创 2017-08-10 10:12:54 · 1174 阅读 · 0 评论 -
41:判断元素是否存在(编程基础之综合应用)
41:判断元素是否存在总时间限制: 1000ms 内存限制: 65536kB描述有一个集合M是这样生成的: (1) 已知 k 是集合 M 的元素; (2) 如果 y 是 M 的元素,那么, 2y+1 和 3y+1 都是 M 的元素; (3) 除了上述二种情况外,没有别的数能够成为 M 的一个元素。问题:任意给定 k 和 x,请判断 x 是否是 M 的元素。这里的 k是无符号整数,x 不大于 10原创 2017-08-03 13:39:29 · 1246 阅读 · 0 评论 -
1:角谷猜想(程序设计与算法(一)第四周测验(2017夏季))
1:角谷猜想总时间限制: 1000ms 内存限制: 65536kB 描述 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。 程序要求输入一个整数,将经过处理得到1的过程输出来。输入 一个正整数N(N <= 2,000,000) 输出 从输入整原创 2017-08-10 11:12:42 · 9258 阅读 · 1 评论 -
3:数字反转
3:数字反转总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入 输入共 1 行,一个整数N。-1,000,000,000 ≤ N≤ 1,000,000,000。 输出 输出共 1 行,一个整数,表示反转后的新数。 样原创 2017-08-10 13:18:57 · 1223 阅读 · 0 评论 -
4:求特殊自然数(程序设计与算法(一)第四周测验(2017夏季))
4:求特殊自然数总时间限制: 1000ms 内存限制: 65536kB 描述 一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。输入 无。 输出 三行: 第一行是此自然数的十进制表示; 第一行是此自然数的七进制表示; 第一行是此自然数的九进制表示。 样例输入 (无) 样例输出 (不提供)#include原创 2017-08-10 14:48:59 · 2001 阅读 · 0 评论 -
6:数字统计( 程序设计与算法(一)第四周测验(2017夏季)
6:数字统计总时间限制: 1000ms 内存限制: 65536kB 描述 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。输入 输入共 1 行,为两个正整数 L 和 R,之间用一个空格隔开。 输出 输出共 1原创 2017-08-10 15:28:29 · 499 阅读 · 0 评论 -
1758:二叉树(3.6数据结构之二叉树)
1758:二叉树总时间限制: 1000ms 内存限制: 65536kB 描述 如上图所示,由正整数1, 2, 3, …组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从10到根结点的路径是(10, 5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1)。对于两个结点x和y,假设他们到根结原创 2017-08-10 16:01:27 · 391 阅读 · 0 评论 -
2726:集合问题(3.7数据结构之堆)
2726:集合问题总时间限制: 5000ms 内存限制: 65536kB 描述 有一组正整数,总数不超过1000,其中最大值记为M。现要将它们划分成N个集合,使得每个集合的元素之和与M的差的绝对值的和最小。集合A中当前各元素之和记为SUM(A),称为A的负荷;SUM(A)与M之差的绝对值称为A的负荷与理想负荷的偏差,简称为A的偏差。把这些整数划分成N个集合的方法是:按照从大到小的顺序,依次为每个原创 2017-08-11 10:08:52 · 733 阅读 · 0 评论 -
2724:围棋(3.8数据结构之图)
2724:围棋总时间限制: 1000ms 内存限制: 65536kB 描述 围棋的棋盘上有19*19条线交织成的361个交点,黑棋和白棋可以下在交点上。我们称这些交点为“目”。一个目的上下左右四个方向,称之为“气”,如果一个目的四个方向都被某一种颜色的棋子占据,那么即使这个目上并没有棋子,仍然认为这个目被该颜色棋子占据。如下图中,四个黑棋中心的交点,由于被黑棋包围,因此我们认为这个目属于黑棋,原创 2017-08-11 10:49:31 · 2401 阅读 · 1 评论 -
1806:词典( 3.9数据结构之C++STL)
1806:词典总时间限制: 3000ms 内存限制: 65536kB 描述 你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。输入 首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典之后是一个空行,然后给出一原创 2017-08-11 11:09:59 · 1548 阅读 · 0 评论 -
1999:日志排序(4.1算法之排序和算法性能)
1999:日志排序总时间限制: 1000ms 内存限制: 65536kB 描述 有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录:“hs_10000_p”是计算任务的名称,“2007-01-17 19:22:53,315”是计算任务开始执行的时间“年-月-日 时:分:秒,毫秒”, “253.035(s)”是计算任务消耗的时间(以秒计) hs_10000_p原创 2017-08-12 15:24:25 · 1238 阅读 · 0 评论 -
1754:字符串数组排序问题(4.1算法之排序和算法性能)
1754:字符串数组排序问题总时间限制: 1000ms 内存限制: 65536kB 描述 给定一组字符串,按指定的排序方式输出这些字符串。排序可是自然顺序(inc)、自然逆序(dec)、忽略大小写顺序(ncinc)、忽略大小写逆序(ncdec)等。输入 输入有多行,第一行为一个表明排序方式的字符串见题面,第二行为字符串的数目。 其余各行每行一个字符串,字符串中间可能空格,前后也可能有空格,但原创 2017-08-12 16:31:06 · 1535 阅读 · 1 评论 -
1526:宗教信仰(4.3算法之图论)
1526:宗教信仰总时间限制: 5000ms 内存限制: 65536kB 描述 世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。 你的学校有n名学生(0 < n <= 50000),你不太可能询问每个人的宗教信仰,因为他们不太愿意透露。但是当你同时找到2名学生,他们却愿意告诉你他们是否信仰同一宗教,你可以通过很多这样的询问估算学校里的宗教数目的上限。你可以认为每名学生只会信仰最多一原创 2017-08-12 19:03:53 · 277 阅读 · 0 评论 -
03:对齐输出
03:对齐输出总时间限制: 1000ms 内存限制: 65536kB 描述 读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。输入 只有一行,包含三个整数,整数之间以一个空格分开。 输出 只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。 样例输入 123456789 0 -1 样例输出 123456789 0 -1再次发现自己基础掌握不原创 2017-08-13 18:01:14 · 1352 阅读 · 0 评论 -
02:找第一个只出现一次的字符(1.7编程基础之字符串)
02:找第一个只出现一次的字符总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。输入 一个字符串,长度小于100000。 输出 输出第一个仅出现一次的字符,若没有则输出no。 样例输入 abcabd 样例输出 c#include<iostream>#include<algorithm>原创 2017-08-22 16:53:14 · 2649 阅读 · 0 评论 -
02:同行列对角线的格子
02:同行列对角线的格子总时间限制: 1000ms 内存限制: 65536kB 描述 输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图:当n=4,i=2,j=3时,输出的结果是:(2,1) (2,2) (2,3)原创 2017-08-26 18:02:46 · 1122 阅读 · 0 评论 -
04:谁拿了最多奖学金
04:谁拿了最多奖学金总时间限制: 1000ms 内存限制: 65536kB 描述 某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于8原创 2017-08-26 19:41:46 · 504 阅读 · 0 评论 -
02:奇数单增序列
02:奇数单增序列总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。输入 共2行: 第1行为 N; 第2行为 N 个正整数,其间用空格间隔。 输出 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 样例输入 10 1 3 2 6 5 4 9 8 7 10 样例输出原创 2017-08-26 20:00:20 · 1655 阅读 · 0 评论 -
4078:实现堆结构
4078:实现堆结构总时间限制: 3000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 定义一个数组,初始化为空。在数组上执行两种操作:1、增添1个元素,把1个新的元素放入数组。2、输出并删除数组中最小的数。使用堆结构实现上述功能的高效算法。输入 第一行输入一个整数n,代表操作的次数。 每次操作首先输入一个整数type。 当type=1,增添操作,接着输入一个原创 2017-08-27 10:11:27 · 843 阅读 · 0 评论 -
08:石头剪刀布
08:石头剪刀布总时间限制: 1000ms 内存限制: 65536kB 描述 石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。 一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,比如:“石头-布-石头-剪刀-石头-布-石头-剪刀……”,就是以“石头-布-石头-剪刀”为周期不断循环的。请问,小A和小B比了N轮之后,谁赢的轮数多?原创 2017-08-27 10:55:35 · 1287 阅读 · 1 评论 -
2743:字符串判等
2743:字符串判等总时间限制: 1000ms 内存限制: 65536kB 描述 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。输入 两行,每行包含一个字符串。 输出 若两个字符串相等,输出YES,否则输出NO。 样例输入 a A bb BB ccc CCC Aa BBbb CCCccc 样例输出 YES#include<iostream>#incl原创 2017-08-27 16:09:07 · 479 阅读 · 0 评论 -
11:图像旋转(1.8编程基础之多维数组)
11:图像旋转总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。输入 第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。 输出 m行,每行n个整原创 2017-08-27 16:53:53 · 1114 阅读 · 2 评论 -
Cow Bowling
Cow BowlingDescriptionThe cows don’t use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-pin-like triangle like this:原创 2017-08-29 10:50:24 · 253 阅读 · 0 评论 -
32:行程长度编码
32:行程长度编码总时间限制: 1000ms 内存限制: 65536kB 描述 在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。 例如,如果待压缩串为”AAABBBBCBB”,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。当然,如果相邻字符重复情况较少,则压缩效率就较低。现要求根原创 2017-08-29 15:53:19 · 1891 阅读 · 0 评论 -
09:明明的随机数
09:明明的随机数总时间限制: 1000ms 内存限制: 65536kB 描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入原创 2017-08-29 16:06:30 · 1042 阅读 · 0 评论 -
1321:棋盘问题
1321:棋盘问题总时间限制: 1000ms 内存限制: 65536kB 描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 输入 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵原创 2017-08-31 10:41:22 · 309 阅读 · 0 评论 -
Multiply
Multiply总时间限制: 1000ms 内存限制: 65536kB 描述 6*9 = 42” is not true for base 10, but is true for base 13. That is, 6(13) * 9(13) = 42(13) because 42(13) = 4 * 131 + 2 * 130 = 54(10). You are to write a prog原创 2017-09-01 10:11:18 · 267 阅读 · 0 评论 -
Evil Straw Warts Live
Evil Straw Warts Live总时间限制: 2000ms 内存限制: 65536kB 描述 A palindrome is a string of symbols that is equal to itself when reversed. Given an input string, not necessarily a palindrome, compute the number原创 2017-09-01 10:36:30 · 455 阅读 · 0 评论 -
2749:分解因数
2749:分解因数总时间限制: 1000ms 内存限制: 65536kB 描述 给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * … * an,并且1 < a1 <= a2 <= a3 <= … <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。 输入 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (原创 2017-09-01 15:28:50 · 7937 阅读 · 3 评论 -
3720:文本二叉树
3720:文本二叉树如上图,一棵每个节点都是一个字母,且字母互不相同的二叉树,可以用以下若干行文本表示:A -B –* –C -D –E —* —F在这若干行文本中:1) 每个字母代表一个节点。该字母在文本中是第几行,就称该节点的行号是几。根在第1行 2) 每个字母左边的’-‘字符的个数代表该结点在树中的层次(树根位于第0层) 3) 若某第 i 层的非根节点在文本中位于第n行,则其原创 2017-09-02 15:47:45 · 1686 阅读 · 0 评论 -
2255:重建二叉树
2255:重建二叉树总时间限制: 1000ms 内存限制: 65536kB 描述 给定一棵二叉树的前序遍历和中序遍历的结果,求其后序遍历。输入 输入可能有多组,以EOF结束。 每组输入包含两个字符串,分别为树的前序遍历和中序遍历。每个字符串中只包含大写字母且互不重复。 输出 对于每组输入,用一行来输出它后序遍历结果。 样例输入 DBACEGF ABCDEFG BCAD CBAD原创 2017-09-02 17:06:52 · 561 阅读 · 0 评论 -
4080:Huffman编码树
4080:Huffman编码树总时间限制: 1000ms 内存限制: 65536kB 描述 构造一个具有n个外部节点的扩充二叉树,每个外部节点Ki有一个Wi对应,作为该外部节点的权。使得这个扩充二叉树的叶节点带权外部路径长度总和最小: Min( W1 * L1 + W2 * L2 + W3 * L3 + … + Wn *原创 2017-09-02 21:01:23 · 1446 阅读 · 0 评论 -
4081:树的转换
4081:树的转换总时间限制: 5000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB 描述 我们都知道用“左儿子右兄弟”的方法可以将一棵一般的树转换为二叉树,如: 现在请你将一些一般的树用这种方法转换为二叉树,并输出转换前和转换后树的高度。输入 输入是一个由“u”和“d”组成的字符串,表示一棵树的深度优先搜索信息。比如,dudduduudu可以用来表示上文中的左树原创 2017-09-03 10:05:31 · 510 阅读 · 1 评论 -
28:单词倒排( 1.7编程基础之字符串)
28:单词倒排总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。输入 输入为一个字符串(字符串长度至多为100)。 输出 输出为按要求排序后的字符串。 样例输入 I am a student 样例输出 student a am I#include<iostr原创 2017-09-03 14:45:37 · 4174 阅读 · 2 评论