试题链接:https://ac.nowcoder.com/acm/contest/6013
比赛评价:作为一个菜鸡,只能搞搞小白赛了。其实题目还不错,复习了一下基础套路。由于代码都能看到,所以之说解题思路。就不放代码了。
(1)牛牛爱数学 .这个很简单,配方一下就是(ab-bc)^2=0.看看bc是不是整除a就行了。
(2)牛牛爱几何。算一下四个半圆和正方形的面积差,就是答案。
(3)牛牛喜欢字符串。考虑分割好的字符串,其实就组成了一个k*(n/k)的矩阵,k是k列,n/k是行,然后考虑每一列,只需要统计一下这一列出现最多的字母,其他的都变成这个,改动的就是这里。然后就做完了。复杂度O(N).
(4)牛牛爱学习。首先可以确定,答案是单调的。所以可以直接二分答案,check的时候,只需要判断当前最多看多少使得看书又副作用。按照这个标准来使得收益最大化即可。
(5)恶魔果实 .首先考虑答案咋算,其实就是看一下某位数到底能变成多少个数,然后答案就是这些方案乘起来。至于怎么算每位数能变成多少个其他的数,这个就是经典的图论问题了,如果a能变成b,那么a到b有一条边,有向边,然后跑一遍folyd,就可以得到答案。其实就是个传递闭包。
(6)牛牛种花 .离散化+二位偏序经典问题。不再多说。
(7)失忆药水 .其实这个题背景就是拉姆齐定理,直接算一下就好了。原来是个完全图,把所有的三元环以上的边全部删掉,答案画图算一下就好了,应该是C(n,2)-(n-n/2)*(n/2).
(8)牛牛走迷宫。经典问题,首先最短路直接bfs搜一下,然后字典序最小贪心。按照DLRU贪心的走就ok。
(9)牛牛的序列。这个还没仔细看,但是应该是个经典问题。
(10)保卫家园。显然,按照时间排序后贪心,一个区间操作吧,需要动态的插入线段和删除线段,set搞一搞就行了