ROUND 207 解题报告
A Group of Students
关键字:模拟
思路:
暴力一遍即可。
时间复杂度:O(n)
空间复杂度:O(n)
B Flag Day
关键字:构造
思路:
很容易发现,能引起方案出现问题的只有出席两次跳舞的人。那么我们着重考虑这些人。从第一组人物开始分配。分配每组时,首先考虑是否有人已经被分配过颜色,以及除了这些颜色外还有哪些颜色。之后进行随机分配。然后考虑这些被分配的人,是否是出席两次舞蹈的人,如果是,递归分配第二次出现的那个组。
时间复杂度:O(n)
空间复杂度:O(n)
C Knight Tournament
关键字:
线段树
思路:
将整个数据读入后逆序处理。利用线段树进行区间赋值。查询时,碰到的第一个值非0节点即为答案。
时间复杂度:O(nlogn)
空间复杂度:O(nlogn)
D Xenia and Hamming
关键字:数论
思路:
因为长度一样,所以总长度一定为s1和s2长度的lcm的倍数。我们很容易知道,s1串的第i位需要与s2串的第gcd(s1,s2)+i,2*gcd(s1,s2)+i....位比较。那么我们建立一个数组,存储s2串中%gcd(s1,s2)位不同字符串的个数。之后进行计算即可。
时间复杂度:O(n)
空间复杂度:O(n)
E Compartments
关键字:分类讨论
思路:
比较麻烦的一道题。首先我们考虑输出-1的情况。不难证明,如果人的总数是1、2、5时,一定无解。其他情况一定存在解。下来主要考虑人数为1的车厢个数a[1]和人数为2的车厢个数a[2]。(1)、a[1]<a[2]。此时最好的方法是:先将人数为1的车厢中的人,移到不同的人数为2的车厢中去。之后,将3个人数为2的车厢重组。然后尝试从人数为4的车厢中抽出一人到人数为2的车厢中去。最后如果还有人数为2的车厢,将其分配至人数为3的车厢中去。(2)、a[1]<=a[2],情况类似,不再详细介绍。
时间复杂度:O(1)
空间复杂度:O(1)
F Bags and Coins
关键字:动态规划 构造
思路:
首先考虑最外层的几个包裹。不难证明,这些包裹中必然包括ai最大的其中一个。这些包裹的ai之和等于s。这里用dp可以得到答案。如果不存在这样一种方案,那么输出-1.若存在这样一种方案,我们不难构造出一种方案满足条件。即将所有非最外层的包裹按大小依次排序,一层套一层,最后到套在最大的那个ai下。这样就得到了满足题意的解。
时间复杂度:O(n)
空间复杂度:O(n)
G Xenia and String Problem
关键字:后缀数组
思路:
暂时不会。。。
时间复杂度:O(nlogn)
空间复杂度:O(n)