数据结构与算法实验题 K 歌 ★实验任务 3* n 个人(标号1~ 3 * n )分成 n 组 K 歌.有 m 个 3 人组合,每个组合都对应一个分数,你能算出最大能够得到的总分数么? ★数据输入 输入的第 1 行是一个正整数 n 和 m(1<= n <=6 ,  n<=m<= C(3*n,3) 组合数) ,输入的第2~m+1行每行包括四个正整数a,b,c,s(1<=a , b ,c <=3 *n, a,b,c不相等,1<=s<=10 ^8)表示组合(a,b…
数据结构与算法实验题 6.1 s_sin's bonus ★实验任务 正如你所知道的 s_sin 是一个非常贪玩的人 QAQ(如果你非常讨厌他请直接从第二段开 始看),并且令人感到非常遗憾的是,他是一只非常非常穷的 ds,为了改变自己的经济情况 他决定外出打工,但是因为 s_sin 是一只死宅,力量魔法耐力速度运气五围都差到爆表 QAQ. 正当他对人生无比绝望的时候,一个游戏店的老板找到他请他帮助设计一个游戏,并答应给 他一定的报酬.游戏的内容如下: 玩家从 n 个点 n-1 条边的图,从节点…
数据结构与算法实验题 4.2 Who is the strongest ★实验任务 在神奇的魔法世界,召唤师召唤了一群的魁偶.这些魁偶排成一排,每个魁偶都有一个 战斗值.现在该召唤师有一个技能,该技能能对其中某个魁偶战斗值进行提高,增加的值为 排在该魁偶左边的战斗值大于它且离他最近的魁偶的战斗值(若该魁偶左边没有大于它的则 战斗值不变).若有一排魁偶战斗值为 8 7 6 8 9 2 则对最后一个魁偶是用该技能的话则最 后一个魁偶战斗值变成 2+9=11.现在召唤师召唤了一排魁偶,从左到右战斗值都…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=3791 中文题不说题意. 建立完二叉搜索树后进行前序遍历或者后序遍历判断是否一样就可以了. 跟这次的作业第一题一模一样,输出输入改下就好 水的半死. 另外一题我以为是一定要一遍读入一边输出,被骗了,最后一起输出就好.等星期一再发那题的题解. #include<cstdio> #include<cstring> int cur; struct node { char c; node *lef…
玩家从n 个点n-1 条边的图,从节点1 丢下一个小球,小球将由于重力作用向下落,而从小球所在点延伸出的每一条边有一个值pi 为小球通过该条边的概率(注意从同一个节点向下延伸的所有边的pi 的和可以小于1,也可以大于1,并且保证对于单独的一条边不会出现pi>1 的情况),而对于所有处于最下方的节点(如图红点所示)都可以有一个值vi,代表玩家可以获得的奖励.现在老板给你这样一张图,之后给你n 个vi 的值,老板希望玩家可以获得的奖励的期望值最小.(对题目不理解可以参见样例)Ps:小球不会逆着重力往…
问题描述:A 国正面临着一场残酷的战争,城市被支持不同领导的两股势力占据,作为一个商人,M先生并不太关心政治,但是他知道局势很严重,他希望你能救他出去.M 先生说:“为了安全起见,我们的路线最多只能包含一条连接两股不同势力城市的道路”.M 先生想知道最快多久能到达目的地.数据输入:第一行N(2<=N<=600),代表城市个数.第二行M(0<=M<=10000),代表道路条数.接下来M 行每行三个数A,B,T.代表一条从城市A 到城市B 的路(双向边)需要耗时T(1<=T<…
问题描述: A 国正面临着一场残酷的战争,城市被支持不同领导的两股势力占据,作为一个商人,M先生并不太关心政治,但是他知道局势很严重,他希望你能救他出去.M 先生说:"为了安全起见,我们的路线最多只能包含一条连接两股不同势力城市的道路".M 先生想知道最快多久能到达目的地. 数据输入: 第一行 N(2<=N<=600),代表城市个数.第二行 M(0<=M<=10000),代表道路条数.接 下 来 M 行 每 行 三 个 数 A,B,T . 代 表 一 条 从 城…
参考:Dijkstra算法 数据结构来到了图论这一章节,网络中的路由算法基本都和图论相关.于是在拿到DS的实验题的时候,决定看下久负盛名的Dijkstra算法. Dijkstra的经典应用是开放最短路径优先路由算法(OSPF). 题目: 第一种实现的算法(错误): 在看过相关的Dijkstra算法解析之后,决定自己尝试写个算法,不过很遗憾,考虑并不全面,理解也不是特别深刻. 最后决定还是贴出来. 算法思想: 1.建立邻接表(后面用二维数组实现,相对来说轻松很多) 2.维护三个数组:dist代表从…
几个大公司(IBM.MicroSoft and so on)面试经典数据结构与算法题C#解答 1.链表反转 我想到了两种比较简单的方法 第一种是需要开一个新的链表,将原链表的元素从后到前的插入到新链表中(也就是原链表第一个元素被插入成新链表的最后一个元素). 第二种是不需要开新的链表,而是逐步反转原链表中元素的指向,例如: 原链表是 1->2->3->4->null  被  逐步修改为 ①2->1->null.3->4->null ②3->2->…
前言 半年前在极客时间订阅了王争的<数据结构和算法之美>,现在决定认真去看看.看到如何用快排思想在O(n)内查找第K大元素这一章节时发现王争对归并和快排的理解非常透彻,讲得也非常好,所以想记录总结一下.文章内容主要分析归并排序和快速排序原理,并根据它们共同的分治思想,引出如何在 O(n) 的时间复杂度内查找一个无序数组中的第 K 大元素? 归并排序原理 核心思想:将数组从中间分成前后两部分,然后对前后两部分分别进行排序,再将排序好的两个部分有序合并在一起,这样整个数组有序. 归并排序使用的就是…