程序设计与实践第三次题目&思路(无码)(T11,T12未补)


在这里插入图片描述乐学服务器炸掉了还剩个11没A,赶快过来写题解QWQ

T11

Description

小张在玩一种卡牌游戏,牌组由 2n 张牌组成,其中 n 张上写有数字 1…n 各一张,其余 n 张上全部是数字 0 。
现在牌组经过随机打乱后,小张拿走其中 n 张牌作为手牌,其余 n 张牌作为牌堆。

小张想经过若干次如下操作使得牌堆自顶向下的牌依次为 1…n 。

每一次操作,小张选择任意一张手牌放到牌堆底,并将牌堆顶的牌放入手牌。

他想知道最少进行几次操作,使得牌堆自顶向下的牌依次为 1…n 。

思路

啊这 我好菜还没做 马上会补上的!

T12

Description

小张在暑假时间来到工地搬砖挣钱。包工头交给他一项艰巨的任务,将一排砖头按照从低到高的顺序排好。可是小张的力量有限,每次只能交换相邻的两块砖头,请问他最少交换几次能够完成任务?

思路

其实可以直接套归并排序的模板然后输出逆序数,具体原理也会马上补上。QWQ

T13

Description

小张经常为了事情太多安排不开而苦恼。现在他手头有 n 项任务,每项任务都有一个开始时间 s_i 和结束时间 e_i 。要想完成一个任务必须从开始时间做到结束时间,并且同一时间小张只能进行一项任务。
小张想知道他最多可以完成几项任务。

思路

方法是,对结束的时间进行排序,然后去从第一个节目开始比对,如果这个节目的结束时间小于等于下一个开始时间,那就可以看,计数器+1即可。

T14

Description

和许多同龄女孩子一样,久莲也喜欢水晶球。

还有 10 天,就是心心念念的他生日了。

久莲希望把全世界最大最好看的水晶球送给他。

她找到了宝石收藏家亚瑟斯,希望能够寻求他的帮助。

亚瑟斯很快被打动了,拿出了精心收集的 n 块美丽的水晶石,这些水晶石初始是长宽高分别为 a 逗號 空格 b 逗號 空格 c 的长方体。亚瑟斯许诺久莲可以从中取走 1 块水晶石作为她礼物的原材料。

同时亚瑟斯有一种魔法,如果这两块长方形水晶石在某一个面能够完美的契合在一起(完美的契合是指这两个长方形面全等),那么可以将它们融合成一块完整的大石头,如果真的实现的话,那么久莲就可能打磨出更大的水晶球啦!

久莲太希望把最美最大的水晶球送给他了,你快帮帮她如何选择吧。

思路

在这里插入图片描述
本题的目的是:找所有(不管是单个方块还是组合过的)的最短边(最小值)的最大值。
对于一个长方体,能切出来的球的直径最大值取决于长方体的最短边长度。
这道题可能一开始直接的想法是二重循环遍历所有组合,然后组合里面再去交叉比对是否匹配,但是这必定TLE
其中有四个优化点:

  1. 输入的时候要给每个方块长宽高排序,得到最长边max,中边mid,最短边min,这样会很方便之后去处理这些数据。
  2. 判断两个方块是否匹配的时候不用交叉比对,因为我们在第一步已经排好序了,只用比较两个方块的mid和max是否分别相等,如果不相等即使匹配了也没有意义。原因在于假如两个方块融合了,会得到一个边长为:匹配边1,匹配边2,非匹配边之和的方块。如果不是mid和max分别相等,而是min参与了匹配,那么min会被保留下来,也意味着这两个块的融合没有给整体带来任何优化。因为最短边还在。
  3. 对每组max, mid, min排序,依照max从小到大(从大到小),如果max相等则mid从小到大(从大到小),如果mid相等则min从小到大(从大到小)的顺序排序。(我还不确定这个是否有用,待会乐学如果修好了我去试一试)(因为我一开始是按着排序后只用看相邻去做的,但是wa了2/17)
  4. 最后还是要遍历所有组合,此处一定要加上一个判断,如果其中一个块的mid<=当前找到的最大值,直接continue,否则后几个用例会TLE。因为如果匹配上了,更新最短边的公式是新的最小值的最大值(结果) = min(a1+a2,b1),所以只要mid小于当前找到的最小值的最大值(结果)直接pass掉就行。

然后,建议使用long long,免得血压因为这个突然上升

T15

Description

在这款游戏中,每一条恶龙有一个难度值 x_i 和一个经验值 y_i 。游戏中的英雄具有攻击力 A 。游戏一开始英雄的攻击力 A=0 。打到一条恶龙你的攻击力需要大于难度值 x_i 。在你击败恶龙以后,你的攻击力会增加经验值 y_i 。
当然,你有时需要额外提升你的攻击力,此时你只需氪金1元,就能增长一点攻击力。小张想知道,如果他自己决定挑战恶龙的顺序,要想击败所有恶龙至少需要氪金多少钱?

思路

贪就要贪个痛快,先打经验值是正的的龙,然后打经验值是负的的龙。
对于经验值是正的的龙,按照等级从小到大排序挨着打,如果等级不够就氪金。
对于经验值是负的的龙,按照等级+经验值从大到小排序挨着打,如果等级不够就氪金。
思路就是这样。
然后,还是建议使用long long,免得血压因为这个突然上升

赶快去写T11和T12的题解QWQ
希望乐学没事( •̀ ω •́ )✧

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值