Editoral for SCUT ICPC Team Qualification Round A

点按此处下载题面

PROBLEM A

很明显,双方最优策略是一直往前走,对手一直往前就能赢了,所以bx hao sui啊!

PROBLEM B

做这个题需要知道二项式定理,乘法逆元和等比数列求和,组合数取模。

    \[\sum_{i=1}^{n}(a^{i}+b^{i})^{k} = \sum_{i=1}^{n}\sum_{j=0}^{k} \binom{k}{j} a^{ij}b^{i(k-j)}=\sum_{j=0}^{k}\binom{k}{j} \sum_{i=1}^{n}q^{i}\]

    \[q = a ^ {j} b ^ {k-j}\]

后面就是等比数列的求和。

需要注意的是q=1的时候。

二项式系数可以用阶乘和逆元预处理,等比数列求和也可以用逆元求出来。复杂度O(Klog(N))。

PROBLEM C

这题求的是一个有向无环图的最小树形图。可以对每个点,选一个权值最小的入边加起来就是答案。

PROBLEM D

直接模拟统计出到最后时刻情怀值会受损多少。对于每个时间点,如果不能ak,则损害值增加tn-ti。最后总的损害值如果比原始情怀值小则just enjoy coding,否则fail to graduate。

PROBLEM E

PROBLEM F

PROBLEM G

 

PROBLEM H

对于每个数,我们需要满足的条件有两个:一个是各数位数字单调递减,第二个是这个数字满足被6整除。首先,如果直接枚举满足第二个条件的数,那么要枚举的数太多,复杂度太高。那么我们首先考虑满足第一个条件。各个数位的数字单调递减说明了各个数字不同(即每个数只能选一次),而数字只能在0-9这10个数选取(说明最多取10个数),且满足单调递减(说明对每组取的数,只有一个方案是符合的)。于是所有满足条件“各数位数字单调递减”的数字只有C(10, 1) + C(10, 2) + C(10, 3) + … + C(10, 9) + C(10, 10) = 2^10-1 = 1023。于是我们可以通过搜索的方法找到所有满足第一个条件的数,然后判断是否满足第二个条件。搜索的方法是先枚举高位,再枚举低位,每次枚举的数都得比高位的数小,直到没有数可以枚举(最小是0)结束。用递归可以解决。最后我们求出所有满足第一和第二个条件的数只有两百多个。注意最大的数会超出int的范围,所以我们可以用一个long long数组存下满足条件的数。接下来我们由于我们最多只有20组数据,所以我们可以判断每个合法的数是否小于或等于输入数据。

主要部分代码如下:

 

PROBLEM I

 

PROBLEM J

把下标乘上1000得到一个递推式子,

BX(n) = BX(n – 1000) + BX(n – 1234)。

答案就是BX(n*1000)

Author Information

ABCJ : doubility(czk)

DH : ConquererV587(kbx)

GI: Xdynix(rxy)

Leave a Reply

Scroll to top