数据结构与算法
文章平均质量分 74
MuXin_L
这个作者很懒,什么都没留下…
展开
-
4:放苹果
总时间限制: 1000ms 内存限制: 65536kB描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 输出对输入的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8来源lwx@POJ刚刚学C++就转载 2014-02-08 16:11:51 · 1041 阅读 · 0 评论 -
3:拓扑排序
总时间限制: 10000ms 内存限制: 1000kB描述给出一个图的结构,输出其拓扑排序序列,要求在同等条件下,编号小的顶点在前输入若干行整数,第一行有2个数,分别为顶点数v和弧数a,接下来有a行,每一行有2个数,分别是该条弧所关联的两个顶点编号输出若干个空格隔开的顶点构成的序列(用小写字母)样例输入6 81 21 31 43 23 54转载 2014-02-10 15:40:44 · 1084 阅读 · 0 评论 -
2:寻找中位数
总时间限制: 1000ms 内存限制: 65536kB描述在N(1输入第1行:N第2至N+1行:每行是一个整数输出第一行:中位数样例输入524135样例输出3经典问题。。曾经的面试题。。群里大神推荐的做法是。维护两个堆,一个是大根堆,一个是小根堆。使两个堆的大小相差不超过一。这个方法不明觉历。以下转载 2014-02-10 15:52:30 · 971 阅读 · 0 评论 -
1:求逆序对数
总时间限制: 1000ms 内存限制: 65536kB描述对于一个长度为N的整数序列A,满足1Aj的数对(i,j)称为整数序列A的一个逆序请求出整数序列A的所有逆序对个数输入输入包含多组测试数据,每组测试数据有两行第一行为整数N(1第二行为N个整数,表示长为N的整数序列输出每组数据对应一行,输出逆序对的个数样例输入51 2 3 4转载 2014-02-10 15:59:59 · 754 阅读 · 0 评论 -
3:方便记忆的电话号码
总时间限制: 2000ms 内存限制: 65536kB描述英文字母(除Q和Z外)和电话号码存在着对应关系,如下所示:A,B,C -> 2D,E,F -> 3G,H,I -> 4J,K,L -> 5M,N,O -> 6P,R,S -> 7T,U,V -> 8W,X,Y -> 9标准的电话号码格式是xxx-xx原创 2014-02-10 16:09:42 · 2927 阅读 · 1 评论 -
1:距离排序
总时间限制: 1000ms 内存限制: 65536kB描述给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离。输入输入包括两行,第一行包含一个整数n表示点的个数,第二行包含每个点的坐标(坐标都是整数)。点的坐标的范围是0到100,输入数据中不存在坐标相同的点。输出对于大小为n的输入数据,输出n*(n-1)/原创 2014-02-10 15:46:05 · 2416 阅读 · 0 评论 -
2:正方形
总时间限制: 3500ms 内存限制: 65536kB描述给定直角坐标系中的若干整点,请寻找可以由这些点组成的正方形,并统计它们的个数。输入包括多组数据,每组数据的第一行是整点的个数n(1输出对于每组输入数据,输出一个数,表示这组数据中的点可以组成的正方形的数量。样例输入41 00 11 10 090 01 02 00 21 22 2转载 2014-02-10 20:01:54 · 2077 阅读 · 0 评论 -
1:倒排索引
总时间限制: 1000ms 内存限制: 131072kB描述给定一些文档,要求求出某些单词的倒排表。对于一个单词,它的倒排表的内容为出现这个单词的文档编号。输入第一行包含一个数N,1 接下来N行,每行第一个数ci,表示第i个文档的单词数。接下来跟着ci个用空格隔开的单词,表示第i个文档包含的单词。文档从1开始编号。1 i 接下来一行包含一个数M,1原创 2014-02-10 20:49:42 · 2274 阅读 · 0 评论 -
这门课程没做出的也没去做的题目。
3:位查询总时间限制: 5000ms 内存限制: 65536kB描述 给出N个范围在[0, 65535]的整数,编程支持以下的操作:(1)修改操作:C d,所有的数都增加d。如果超过65535,把结果模65536。 0 (2)查询操作:Q i,统计在N个正整数中有多少个整数其对应的二进制形式的第i位二进制位为非0。0 最后,输出所有转载 2014-02-11 13:28:55 · 3371 阅读 · 0 评论 -
3:牛的选举
总时间限制: 1000ms 内存限制: 65536kB描述现在有N(1现在给出每头牛i在第一轮期望获得的票数Ai(1<=Ai<=1,000,000,000),以及在第二轮中(假设它进入第二轮)期望获得的票数Bi(1<=Bi<=1,000,000,000),请你预测一下哪头牛将当选总统。幸运的是,每轮投票都不会出现票数相同的情况。转载 2014-02-10 15:55:22 · 1706 阅读 · 0 评论 -
2:DNA排序
总时间限制: 1000ms 内存限制: 65536kB描述现在有一些长度相等的DNA串(只由ACGT四个字母组成),请将它们按照逆序对的数量多少排序。逆序对指的是字符串A中的两个字符A[i]、A[j],具有i A[j] 的性质。如字符串”ATCG“中,T和C是一个逆序对,T和G是另一个逆序对,这个字符串的逆序对数为2。输入第1行:两个整数n和m,n(0原创 2014-02-10 16:04:08 · 1918 阅读 · 0 评论 -
1:拼写检查
总时间限制: 2000ms 内存限制: 65536kB描述现在有一些英语单词需要做拼写检查,你的工具是一本词典。需要检查的单词,有的是词典中的单词,有的与词典中的单词相似,你的任务是发现这两种情况。单词A与单词B相似的情况有三种:1、删除单词A的一个字母后得到单词B;2、用任意一个字母替换单词A的一个字母后得到单词B;3、在单词A的任意位置增加一个字母后原创 2014-02-10 16:17:37 · 2060 阅读 · 0 评论 -
3:发现它,抓住它
总时间限制: 1000ms 内存限制: 65536kB描述一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N1. D [a] [b]其中[a]和[b]表示两起案件的编号,这条信息表明它们属于不同的团伙所为2. A [a] [b]其中[a]和[b]表示两起案件的编号,转载 2014-02-10 20:36:38 · 3483 阅读 · 0 评论 -
2:宝昌县长要修路
总时间限制: 1000ms 内存限制: 10000kB描述宝昌县长意气风发,他决定整修之前县里的道路。县里的道路很多,但维护费用昂贵。具体如图A所示。线段上面的数据表示两个节点之间的所需要的维修费用,现在需要对乡村进行道路优化,最基本的要求是将所有的村庄节点都要联通起来,并且要求每月的维护费用最小。比如优化后的图如B所示。输入第一原创 2014-02-10 12:40:07 · 1679 阅读 · 0 评论 -
1:我爱北大
总时间限制: 1000ms 内存限制: 65535kB描述“红楼飞雪,一时英杰……”耳边传来了那熟悉的歌声。而这,只怕是我最后一次听到这个声音了。想当年,我们曾经怀着豪情壮志,许下心愿,走过静园,走过一体,走过未名湖畔的每个角落。想当年,我们也曾慷慨高歌,瞻仰民主与科学,瞻仰博雅塔顶,那百年之前的遗韵。没错,我爱北大,我爱这个校园。然而,从当我们原创 2014-02-10 12:20:52 · 1970 阅读 · 1 评论 -
4:前缀中的周期
总时间限制: 3000ms 内存限制: 65536kB描述一个字符串的前缀是从第一个字符开始的连续若干个字符,例如"abaab"共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i 大于1)的前缀,是否由重复出现的子串A组成,即 AAA...A (A重复出现K转载 2014-02-08 18:03:02 · 2751 阅读 · 0 评论 -
1:多项式加法
总时间限制: 1000ms 内存限制: 5000kB描述 我们经常遇到两多项式相加的情况,在这里,我们就需要用程序来模拟实现把两个多项式相加到一起。首先,我们会有两个多项式,每个多项式是独立的一行,每个多项式由系数、幂数这样的多个整数对来表示。如多项式2x20- x17+ 5x9- 7x7+ 16x5+ 10x4 + 22x2- 15对应的表达式为:2 2原创 2014-02-08 15:43:19 · 2959 阅读 · 0 评论 -
2:栈的基本操作
总时间限制: 1000ms 内存限制: 1000kB描述栈是一种重要的数据结构,它具有push k和pop操作。push k是将数字k加入到栈中,pop则是从栈中取一个数出来。栈是后进先出的:把栈也看成横向的一个通道,则push k是将k放到栈的最右边,而pop也是从栈的最右边取出一个数。假设栈当前从左至右含有1和2两个数,则执行push 5和pop原创 2014-02-08 16:24:30 · 652 阅读 · 0 评论 -
2:字符串插入
总时间限制: 1000ms 内存限制: 65536kB描述有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的'\0'。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。输入输入包括若干行,每一行为一组测试数据,格式为str substr输出对于每一组测试数据,输出插原创 2014-02-08 15:47:47 · 967 阅读 · 0 评论 -
1:用队列对扑克牌排序
总时间限制: 1000ms 内存限制: 65536kB描述假设这里有36张扑克牌,分别为A1~A9,B1~B9,C1~C9,D1~D9,其中A代表方片,B代表草花,C代表红桃,D代表黑桃,那么,设定如下的排序规则:1.对于两张卡牌,X1Y1与X2Y2,X1与X2表示A~D,Y1与Y2表示1~9,如果X1与X2不同,那么依照D>C>B>A的方式进行排序2.假如有X1与X2相同时,那么原创 2014-02-08 16:17:20 · 2123 阅读 · 0 评论 -
1:统计字符数
总时间限制: 1000ms 内存限制: 65536kB描述判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空输出n行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格原创 2014-02-08 17:04:39 · 863 阅读 · 0 评论 -
1:物质分解记录
总时间限制: 60000ms 内存限制: 131064kB描述对 物质分解记录 的结构进行统计分析。例如:给出一份 物质分解记录。Material_1{Material_2{Material_3 Material_4Material_5 { Ma原创 2014-02-10 12:05:27 · 2221 阅读 · 0 评论 -
2:二叉搜索树
总时间限制: 1000ms 内存限制: 1024kB描述 二叉搜索树在动态查表中有特别的用处,一个无序序列可以通过构造一棵二叉搜索树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。每次插入的新的结点都是二叉搜索树上新的叶子结点,在进行插入操作时,不必移动其它结点,只需改动某个结点的指针,由空变为非空即可。 这里,我们想探究二叉树的建立和序列输出。原创 2014-02-10 11:45:24 · 2081 阅读 · 0 评论 -
1:实现堆结构
总时间限制: 3000ms 内存限制: 65535kB描述定义一个数组,初始化为空。在数组上执行两种操作:1、增添1个元素,把1个新的元素放入数组。2、输出并删除数组中最小的数。使用堆结构实现上述功能的高效算法。输入第一行输入一个整数t,代表测试数据的组数。对于每组测试数据,第一行输入一个整数n,代表操作的次数。每次操作首原创 2014-02-10 11:37:22 · 2588 阅读 · 0 评论 -
3:Huffman编码树
总时间限制: 1000ms 内存限制: 65535kB描述构造一个具有n个外部节点的扩充二叉树,每个外部节点Ki有一个Wi对应,作为该外部节点的权。使得这个扩充二叉树的叶节点带权外部路径长度总和最小: Min( W1 * L1 + W2 * L2 + W3 * L3 + … + Wn * Ln)Wi:每原创 2014-02-10 11:52:01 · 1337 阅读 · 0 评论 -
3:宗教信仰
总时间限制: 5000ms 内存限制: 65536kB描述世界上有许多宗教,你感兴趣的是你学校里的同学信仰多少种宗教。你的学校有n名学生(0 输入输入包括多组数据。每组数据的第一行包括n和m,0 输出对于每组数据,先输出它的编号(从1开始),接着输出学生信仰的不同宗教的数目上限。样例输入10 91 21 31 41 51 6原创 2014-02-10 12:12:52 · 1364 阅读 · 0 评论