20200419(ABC)题解 by 马鸿儒,孙晨曦

B题:马鸿儒

题解:

B题只需要分类套路即可,如果b数组出现了f数组没有出现过的,那么一定不可能,如果b数组出现了,f数组出现也出现了但是出现多个,那么一定是不一定,然后的就是可能,直接按照位置输出就行

C题:孙晨曦

题解:
从小到大排序(排序规则为 主value 次index)
排序后的序列,对于位置i上的数,如果它在原序列的下标大于i,显然从位置i到它在原序列的下标之间的所有数都要在同一组里。那么就把它们的组别都设定为与位置i相同的组别。若位置i上的数在原序列的下标<=i,则不需要处理。
如果对于每个原下标>i的情况都for(i to 在原序列的下标)暴力设定组别的话,会超时,所以考虑设置一个Max_pos的指针,代表从1到Max_pos都已经赋过组别了,现在for循环只需要每次从(Max_pos+1 to 在原序列的下标),然后更新Max_pos即可。
最后统计不同的组别数量就是答案。

posted @ 2020-05-20 09:41  浪在ACM  阅读(102)  评论(0编辑  收藏  举报