牛客周赛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代码:
总结:做这些思维题要多去模拟一些样例,去找到规律。