CSDN 编程竞赛十一期题解

竞赛总览

CSDN编程竞赛十一期:比赛详情 (csdn.net)

本次竞赛其它方面的体验还是很棒的,就是在线IDE提供的默认代码模板的坑太多了。

第四题的数据范围是long long int,默认的C++代码模板使用int范围。

交卷之后突然意识到是模板的问题,所以本次竞赛没得到满分,有点可惜。

竞赛题解

题目1、圆小艺

小艺酱得到n个同心圆。小艺酱对着n个同心圆进行染色。相邻的圆范围内不能有相同的颜色。相隔一层的圆颜色相同。小艺酱想知道圆最外层的那种颜色全部染了多少?

输入同心圆的半径,并对这些半径进行降序排序。

用大圆的面积减去小圆的面积,可以算出来一个同心圆的面积。

然后循环计次变量+2,继续计算下一个同心圆的面积。

将所有面积累加起来即可得到最终答案。

题目2、K皇把妹

存在n个节点,目标节点在m。每个节点有自己的权值a。在权值k内(含k值)选择一个权值非0节点且与目标节点距离最近。节点i与节点j的距离为abs(i-j)。

题目3、筛选宝物

已知存在n个宝物,每个宝物都有自己的质量m和价值v,在考虑选择宝物时只能选择总质量小于等于M的方案,请问在最优方案下选择宝物,能获取到最大价值V是多少?

这是动态规划算法中经典的背包问题。

每个物品最多只能被选择一次,这是背包问题系列中最简单的一种形式。

前辈们写过有不少背包系列的教程,感兴趣的小伙伴,可以搜索01背包自学一下。

题目4、圆桌

有N个客人与足够多张的圆桌。主人安排每位客人坐在一个圆桌边,但是每位客人希望自己左右边上分别有一些空座位,不然会觉得害羞。注意,如果一个客人所在的圆桌只有他一个人,那么他左边的空座位数量就是他右边的空座位数量。试问主人需要准备多少个座位,才能让每个客人舒适的坐下。

贪心算法。

你可能感兴趣的:(CSDN,竞赛题解,算法,c++)