模拟赛二补题报告

Hello,everyone!距离复赛开考还有20天,各大网校,线下培训已经开始了加急的训练,下面让我们来看看我的第二套模拟赛的补题报告吧~

今天是国庆节,祝大家国庆节快乐!

一.题目报告

比赛中0题AC,赛后补4题。第一题40,剩下零分

二.赛中情况

比赛中第一题样例全过,但是在求最优解方面没有考虑到,结果只得了40分;第二题读题的时候就没看懂,赛后才发现其实很简单(真是脑回路转不过来啊);第三题一直在死磕,不过没磕出来,赛后才知道要用拆分+两次求前缀和(一点没学aaaa);第四题写在脸上的不会,没浪费时间,想骗一点分来着,不过没骗上。

三.题解报告

T1:人员借调(transfer)

题目大意:

某人在 A 地工作能力非常出众,B 地的领导想借调某人帮忙处理n件事情,某人处理第i件的耗时为ai分钟。
正常借调的过程为小可从 A 地到 B 地进行jiaqilai处理,处理结束之后回到 A 地。
但是由于某人能力过于突出,如果某人在 B 地待连续大于等于240分钟时,A 地领导会非常的不高兴,将强制把某人留在 A 地7天(10080min),7天结束后小可可以继续留在 A 地正常工作或者继续前往B 地帮忙处理事情。
于是,某人有了一个对策,在240分钟快到的时候就此 B 地回到 A 地,然后再去 B 地,这样的话240分钟就会重新计时。注意:从 A 地往返一次 B 地会耗时400分钟(这个时间不计算到待在 B 地的时间)。
现在某人从 A 地准备出发,需要在 B 地处理完所有事,然后回到 A 地正常的工作。
注意: 件事情的不可以打乱,并且开始处理一个事情时,这个事情必须处理完才可以继续后面的内容(无论是回 A 地还是继续处理后面的事情)。
请问某人至少需要多少分钟?

题目解析:

判断某人是否干一件事是否超过240分钟,想就最优解就要知道这几件事加在一起的时间,比如说:某人在做第一件事时,如果已经超过了240分钟,那就不要再回去做一次牢再回来工作,既然已经超过240分钟,那某人就做完所有事再回来坐牢;如果第一二件事加起来也没有超过240分钟,那我们就可以把两件事放在一起做,如:a1=100,a2=139,那么就可以合并,一起做,做完就要回A地。

AC code:

T2:计算(calc)

题目大意:

计算需要使用到三个整数:m,n,k
计算条件如下(设 为满足计算条件的数字):
1:m\leq x\leq n
2: 在十进制下所有位上的数字之和为k
根据计算条件得到的x可能会很多,请输出十进制下所有位上的数字的积最大的那个(如果有多个积相等,则输出x最小的那个)
数据保证有解!

题目解析:

就是求出x,输出最大的那个,比如说:m=114514,n=191981,k=10,x=121222,数字和为:1+2+1+2+2+2=10;数字乘积=1*2*1*2*2*2=16

AC code:

T3.智能公交(transit)

题目大意:

马路上总共有n个公交站台,编号从1,2,3,...,n ,有一辆智能公交车会在这 n个站台之间穿梭。
如果智能公交上没有乘客,那么智能公交就会停靠在x站台。
有人要乘坐智能公交,只需要按动公交站台上的按钮,智能公交就会快到到达相应的站台。
例如,有人想从第五个公交站台到第十个公交站台,那么公交车会先从第x个站台跑到第五个站台,然后再从第五个站台跑到第十个站台,然后再回到第x站台停下。(智能公交可以随意的双向移动,不需要考虑智能公交是否掉头转弯等因素)假设相邻的两个站台的距离都是 千米,那么智能公交总共行走了|x-5|+|5-10|+|10-x|的距离。
现在有m个人要依次乘坐智能公交,每个人在               都会等待智能公交停在x站台之后在按动当前站台按钮准备乘坐公交。现在已知第i个人都是从a站台到b站台。请你计算x,使得智能公交移动距离最短。最终输出x和最短的距离,x若有多个,输出最小的一个。

题目解析:用差分和双前缀和去做,你就会发现这个题太太太太太太太太(此处省略1000万个太)绕了,先用前缀和求出这个数列m,让后用差分来求出这个数列的和,进而求出x

AC code:     

T4:异或和(exclusive)

题目大意:多个集合中总共有 个数字,并且已知每个数字的大小 和属于某个集合 。
在一个集合中选择一个数字,收益为这个数字的大小,选择多个数字,收益为这些数字的异或和。总收益为每个集合的收益之和。注意:最多从中选择m(m\leq n)个数字,使这些数字总收益最大。

题目解析:此时不难想到对于每一个集合进行一次如上操作,但若这样开成三维数组会超内存,故可以之用二维数组,但每次使用后清空。这样就需要再开一个数组 表示第 组选 个数最大的异或值。每一组结束 dp 预处理操作后存入 num 中,最后使用一个分组背包即可得到最大异或值。但是要注意,在每一组 dp 预处理时, 应循环到组中元素的个数而不是 否则会超时。 由于 的总值仍是 ,所以操作时组和 的循环次数总和仍为 ,时间复杂度不变。
备注:最后使用分组背包的话就是o(n)_{2},如果循环条件没写好,那就是o(n)_{3}

AC code:

四.考后自我总结:

在本场考试中未取得好的成绩,有很多不应该错的,也有很多不会的,像第一题,我在考虑的时候没有想到有最优解的情况,在今后的考试中,我一定要仔细审题,多去考虑可能平常考虑不到的点,明天加油!!!

                                                                                                        ------2023.10.1 国庆节 星期天

                                                                                                                         祝大家国庆节快乐!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值