个人思路仅供参考,如有不足欢迎指出。
更正:代码156、167行“+=”改为“-=”,另外比赛场次可以用n*(n-1)/2而不用C(n,2),题目有提到……

【问题描述】

2018年俄罗斯世界杯结束了,法国获得冠军,全世界球迷度过了一个非常愉快的夏天。作为中国球迷,不能总是看别人踢球,这不福利来了,根据FIFA(国际足联)及全体成员协会的一致决定,2118年世界杯将在中国举办,作为东道主,中国队将无需参加预选赛而直接参加决赛阶段的比赛。

比赛规则如下:

总共n(n为偶数)个球队参加比赛

按照分组赛积分排名,前n/2的球队进入淘汰赛

积分排名的规则如下:球队获胜得3分,平局得1分,失利得0分,按照积分递减、净胜球递减以及进球数递减方式排名

编写一个程序,根据给出的参赛队伍名单和所有比赛的结果,找出成功进入淘汰赛阶段的球队名单。

C++

个人思路仅供参考,如有不足欢迎交流。

【问题描述】

二叉树是一种非常重要的数据结构,非常多其他数据结构都是基于二叉树的基础演变而来的。对于二叉树,深度遍历有前序、中序以及后序三种遍历方法。

三种基本的遍历思想为:

前序遍历:根结点 —> 左子树 —> 右子树

中序遍历:左子树—> 根结点 —> 右子树

后序遍历:左子树 —> 右子树 —> 根结点

比如,求以下二叉树的各种遍历

二叉树

前序遍历:1 2 4 5 7 8 3 6

中序遍历:4 2 7 5 8 1 3 6

后序遍历:4 7 8 5 2 6 3 1

需要你编写程序解决的问题是:已知一个二叉树的前序遍历和中序遍历的结果,给出该二叉树的后序遍历的结果。

C++二叉树

个人思路仅供参考,如有不足欢迎交流。

问题描述

小明现在在学习多项式的展开:就是把一个形如

(x+a1) (x+a2) … (x+an)

展开成如下形式:

x^n + b1x^(n-1) + b2x^(n-2) + … + bn-1^x + bn

比如 (x+1)(x+2)=x^2 + 3x + 2

(x+1)^3 = x^3 +3x^2 +3x + 1

小明做了很多练习,但是不知道对错,现在请求你的帮助,判断小明的展开式是否正确。

C++

个人思路仅供参考,如有不足欢迎交流。

【问题描述】

Vasya有几本电话簿,记录了他的朋友们的电话号码,每一个朋友都可以有一或几个电话号码。

Vasya决定整理关于朋友电话号码的信息。给定n个字符串,来自于Vasya的电话簿中的条目。每一条都以朋友的姓名开头,然后跟着当前条目中的电话号码个数,然后是本人的电话号码。有可能几个相同的电话被记录在同一个记录中。

Vasya还认为,如果电话号码a是电话号码b的后缀(也就是说,号码b以a结尾),这两个号码被当作同一个电话号码,那么a被认为是无城市代码,它不应该被考虑。

输出整理后Vasya朋友的电话号码信息。有可能两个不同的人有相同的号码。如果一个人有两个电话号码x和y,x是y的后缀(即y以x结尾),则不输出x。

如果Vasya的电话簿中的某些朋友记录了几次,那么只需要记录一次。

C++

个人思路仅供参考,如有不足欢迎交流。

【问题描述】

给定一个由n个小写字母组成的字符串s,需要使用最少数量的钱币来压缩它。

压缩该字符串,必须将s表示为多个相互连接的非空字符串: s=t1t2…tk,其中第 i 个字符串按照下列两种方法之一编码:

如果|ti|=1,也就是说 ti为单个字符组成的字符串,编码时需要支付a个钱币

如果ti是t1t2…ti-1的子串,编码时需要支付b个钱币

你的任务是计算压缩给定的字符串需要花费的最小钱币数。

C++