2024暑假牛客多校5(B,E,H,L)

本场的难度跨度非常的大,速出四道签到就在非常前面的位置了,因为签到之后的题不是银牌就是金牌,非常的可怕,因此题解就只分享四道签到的思路,难度更高的笔者也还在学,就不拿出来误人子弟了。

B珑

题意:给出一个n行m列的矩阵以及无数个12和21的小矩形,问你在限制条件下能否组成这个nm的矩阵。限制条件一共两种,第一种是长度为1的边不能重合,第二种是长度为2的边不能重合,这边讲一下长度为2的边不能重合是指不能有一点接触,比如我上一层有两个12的小矩形,我下一层不能放一个1*2的小矩形在中间,因为这个小矩形长度为2的边和上面的两个的各自的半边重合了,这种情况也是需要排除的。每次询问的限制根据输入判断,有可能无限制,有可能有1.2其中一种,或者两种限制都有。

思路:规律题,首先发现n和m都是奇数的情况下是肯定不行的,不管有无限制都是肯定组合不出来的。然后讨论简单的全限制和全无限制,发现全无限制除了n和m都是奇数的情况就都可以,然后全限制的情况只可能是正好12或者21可以。然后考虑只有限制1的情况,会发现因为长边不限制,所以是存在往上叠的情况的,所以只要n和m有一个为偶数就行。但是还有一种情况就是n=1或者m等于1的时候,这个时候肯定需要短边拼接,但是短边被限制了,所以只能12或者21单个可以。最后就是长边限制,我们会发现只要n和m都大于1的化,长边不管怎么拼接必然有一部分或者全部重合,因此我们只能让短边去拼,也就是n和m一个为1另一个为偶数。考虑到这些情况就可以了。

E安

题意:两个王进行比赛,各自都有n个骑士,ai骑士的对面是bi骑士,对于序号i的骑士只能攻击相同序号i的对面的骑士,骑士生命为0则死亡。问先手最多剩下几个骑士

思路:签到题,发现最优解就是一直保持自己的优势,避免被偷家就行,然后相同生命的先手一定能保存一半向上取整,因为先手攻击,后手的骑士一定会先死,别的情况下我们都可以保存一滴血换一滴血来维持自己的优势。因此记录先手血量大于后手的数量加上血量相等的数量/2向上取整即可

H入

题意:给出一个n个点m条边的无向图,让我们随意分配每个点的值和起始点,然后开始跑图,从当前点跑到和自身相连的所有的点里面值最小的那个,直到最小的值是自己本身为止,求最多跑几个点。

思路:因为n和m都很小,暴力跑dfs就可以过,注意不要爆数组以及尽可能少用logn的stl就可以安心过。时间复杂度大概是nm方。 为什么这样跑,因为从某个点开始选择一条路,那说明这个点剩下路到的点肯定都比你走的这个点的值大,你肯定走不了,就同步记录一下,这样就不用跑很多了。

L 知

题意:给出n个值,你可以进行无数次操作,每次操作让i号位置值加1,i+1位置的值-1,目的是让最后所有位置的值相乘最大。

思路:发现操作其实就是把后面的值转移给前面,要让乘积最大,就是让所有的数尽可能接近。那我们每处理到一个新的位置,就把这个数一点点分到前面,直到他小于等于前面最小的那个,这样一次次操作后乘积一定是最大的。很容易想到优先队列进行这样的操作,每到一个新的i,把这个i和之前所有数里面最小的比较,大于的化就把这个数减少1分配到前面对应的那个数就行。

最后把优先队列所有出取出相乘就是答案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值