第三次数据结构作业

    xiaoxiao2022-07-05  137

    ###A.连续线段 ####题目描述 给定若干个线段,求最多的首尾相连的线段条数,线段<=100

    ####题目解决 我其实不太知道这道题目用现在的知识应该怎么解?? 写了个最短(长)路算法,floyd那种的,怎么抽象这个模型呢,就是把每一个线段都抽象成图论模型中的一个点,如果两条线段首尾相连就给他们俩中间连一条边长为1的边,然后用floyd跑一个最长路,枚举开始和结束的两个线段,然后找到最长路最长的一组,最长路长度+1输出就是本题的答案了 另:为什么会想到floyd呢,因为floyd是一个 O ( n 3 ) O(n^3) O(n3)的算法,看到线段数<=100自然而然的就想到了

    ###B.猴子选大王 ####题目描述 要从n只猴子中选出一位大王。它们决定使用下面的方法: n只猴子围成一圈,从1到n顺序编号。从第q只猴子开始,从1到m报数,凡报到m的猴子退出竞选,下一次又从退出的那只猴子的下一只开始从1到m报数,直至剩下的最后一只为大王。请问最后哪只猴子被选为大王。

    ####题目解决 我记得去年上机题有类似的,还比这个简单 我写的递推,具体方法可以看TCPL串讲递推部分的内容,这个就是从q开始查数,实际上最后得出答案之后+q再模n就行了。 说说应该是本来应该写的算法吧,维护一条长度为n的单向循环链表,从链表第q个开始,每次向后走m个,然后把走到的这个元素从链表中删除,具体这个删除操作怎么搞呢?记录一个我这个元素的上一个是谁,就当是pre吧,然后让pre的指针指向当前元素的下一个就行。 然后继续走走走直到维护的这个链表长度为1为止。

    ###C.多项式相乘 ####题目描述 首先输入第一个多项式中系数不为0的项的系数和指数,以一个空格分隔。且该多项式中各项的系数均为0或正整数,系数和最高幂次不会超过int类型的表示范围。对于多项式 anxn +a n-1 x n-1 + … + a1x1 + a0x0 的输入方法如下: an n a n-1 n-1 … a1 1 a0 0 即相邻两个整数分别表示表达式中一项的系数和指数。在输入中只出现系数不为0的项。最后一项的指数后没有空格,只有一个回车换行符。 按照上述方式再输入第二个多项式。

    ####题目解决 这道题!我居然!调了!一个!小时! 【耻辱 简单的说,维护一个有序链表,链表中每个元素有另两个关键词,一个是系数一个是指数,按照指数有序。 两个多项式相乘,每次产生一个新的项,然后我们从前到后遍历这个链表,看看能不能合并同类项(找到一个指数相同的元素直接把当前的系数加在原来的系数上),如果找不到我们就把这个元素插入到链表中,要怎么才能够保证链表依然有序呢?我们把这个元素插在第一个比当前元素指数小的的元素前面就可以啦! 这个题的读入有一点点复杂,其实一个一个字符读读到空格转化数字,读到换行符停止就可以啦。

    ###D.文件加密(环) ####题目描述 太长了不复述

    ####题目解决 如果你会了链表操作那么这道题目就是一道模拟题【手动狗头 看看这道题需要几个步骤:首先去重的操作在之前的两个题解中都讲过啦,甚至加密的简单写法也讲啦,连环和删除在上面的B题里也说啦,好啦,现在把他们组合一下,这道题目你就做完了! (好麻烦的一道题,语文题石锤)

    ###E.词频统计 ####问题描述 编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。

    注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。

    ####题目解决 其实要不是题目上括号一个数组或链表实现我还真没想起来trie或者map233 依然是维护一个有序链表,每个元素里面存两个东西,一个是词,另一个是出现过的次数,链表按照词的字典序排列。 怎么比较字符串,说过,怎么维护有序链表,说过啦。 然后最后遍历一遍这个链表输出就好啦!

    最新回复(0)