0%

Kickstart 2019 Round H参赛记录与解题思路

用了一星期刷了一下今年的前几轮题,虽然感受到了这些轮数之间题目难度幅度差别有点大,但大概没想到最后结果会是惨败。打完直接自闭了。。。想了想还是记录一下吧,希望明年能成功混一件衣服回来。

题解代码等这两天补上。

比赛链接

Q1: H-index

题目大意:一个人发表了n篇文章,每一个文章具有一个影响因子A[i],如果一个人有h篇文章的影响因子都大于等于h,则这个人的H-index就是h。根据发表的文章顺序,问每一篇文章发表后这个人的H-index都变为了多少。

刚开始看见小数据集只有5分的时候就有点感觉不妙,暴力写了一个交了然后开始研究大数据集,然后卡在了怎么来维护这么一个数据范围上。显然$10^5$的数据范围肯定是要$O(log n)$级别的维护,但尝试了二分插入等方法之后还是不知所措。

看过答案之后感觉其实是有暗示的,$O(log n)$级别的数据维护其实没几个,该想到用最小堆维护的。

Q2: Diagonal Puzzle

题目大意:一个n*n的矩阵,每个矩阵中有一个白色棋子或黑色棋子,每一次可以选择一条斜的对角线(左右均可)来让一行棋子翻转,类似黑白棋。问最少多少次操作能够使全部棋子变黑。

这题中途看了一眼通过率吓了一跳,比第三题还低。小数据集很明显是让暴力搜索的,可以分析出每一个对角线至多只会翻转一次,写了一个BFS结果一直在爆空间,调了一会之后心态就炸了。现在想想可能写个dfs更好一点。

大数据集的第一个题解说实话我没怎么看懂。。但是第二个题解还是看懂了的,很巧妙的思路,将矩阵问题变成了一个二色染色图来搜索

Q3: Elevanagram

题目大意:给若干个1-9,问这些是否能够组成一个11的倍数。11的倍数满足
$$
(奇数位的和-偶数位的和)mod \space 11=0
$$
这题大概是心态最炸的,上午刚刚做完这么一个类似的dp,下午就不记得了。用dp[i][j](0<=j<=11)表示前面i个数分别在模11余j时是否存在,然后顺次递推就可以了。

至于大数据集其实可以偷鸡,如果某个数的个数大于20就把他减少至20以内,事实证明是过的去的。

其实中途曾经尝试考虑过这种思路,但结果上emmm,不知道怎么就给否了,很轻易的否了。。。