最近写过的一些思维题

牛客周赛78场的C题,首先分析题目可得当你更改每一行时只能翻转一次(如果反转2次时和原来是一样的),那么如果我们以第j列第i行为答案时,如果第i行是1的话那么其它行的第j行也应该是1,不能是0;当第j行是0时其余行也应该是0。这样才满足条件。所以最终会发现我们就找每一列出现的最高次数就是我们的答案。下面是AC代码:

牛客周赛78场的D题,先说结论:将数组中的每个元素都乘以K就是答案。

证明:

1.先证明他们两个选择的区间是连续的。A:小龙选择的区间,B:小蛇选择的区间,C:他们之间的间隔,sum:表示整个数组的和。所以sum=sum+(k-1)*(A和B的区间和),当k>1时。

① 如果C区间的和为0时,小龙和小蛇两人是否选取对结果不产生影响。

② 如果C区间的和 > 0时,因为小龙想要元素之和尽可能大所以小龙一定会把C选上,这时小龙所选择的区间变为A+C,和小蛇的区间连续。

③ 如果C区间的和 < 0时,因为小蛇想要元素之和尽可能小所以小蛇一定会把C选上,这是小蛇区间变为B+C,和小龙区间连续。

当k < 1时是一样的,所以我们就可以将两个人的选择看作是一个人进行的区间选择。

2.证明一个人所选择的区间一定是整个区间。

这时你会发现当D > 0,小龙会将D区间选走,当D < 0时小蛇一定会将D区间选走。相同的E区间也是一样的。

总结:两个人所选择的区间是连续的并且一定是整个区间。下面是AC代码:

牛客周赛77场的B题,题目中说了重新排序后也就是说他给的顺序我们是可以随意调整的。这种题要去多枚举几组去找规律,1 2 3 4 5 6 7 8 9 YES,1 2 3 4 5 6 7 8 9 1 YES,1 2 3 4 5 6 7 8 9 1 1 NO,1 2 3 4 5 6 7 8 9 1 2 YES 你会发现当你最大的出现次数减去最小的出现次数 > = 2时就不成立了,但是1 2 3 4 5 6 7 8 1 NO这种情况你还要去考虑是否涵盖1~9全部的数字, 我们可以取一下1~9中最小的出现次数,然后让1~9中出现次数都和这个最小数进行减法如果发现大于1直接输出NO即可。下面是AC代码:

总结:做这些思维题要多去模拟一些样例,去找到规律。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不是淼淼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值