2018 Multi-University Training Contest 2

Rank Solved A B C D E F G H I J
88/821 3/10 . Ø Ø O Ø Ø O . Ø O

O: 当场通过

Ø: 赛后通过

.: 尚未通过

A Absolute

unsolved


B Counting Permutations

upsolved by chelly


chelly's solution

C Cover

upsolved by chelly


chelly's solution

D Game

solved by chelly


chelly's solution

签到,全是YES

E Hack It

upsolved by ch


ch's solution

F Matrix

upsolved by chelly


chelly's solution

G Naive Operations

solved by chelly


chelly's solution

因为给的b是排列,所以均摊对答案贡献是(nlogn)级别的,于是就可以用线段树暴力模拟

H Odd Shops

upsolved by chelly


chelly's solution

首先有个结论,就是(f(x)^2=f(x^2) (mod 2)),这就使得多项式的幂在模2意义下可以降次
那么对于这个问题,就可以把它拆成(log(n))个括号的乘积,其中每个括号里面有不超过11项,但是次数会很高,所以这个东西并没有很好的解法
可以考虑,在降幂的过程中,我们要处理的是(f(x)^{2k}g(x))的形式,其中(f(x))就是刚开始读入的那个多项式,(g(x))是我们在之前降幂过程中留下的单独括号的卷积
我们可以把(g(x))中次数为奇数的项和偶数的项单独拿出,比如(x^0+x^1+x^4+x^5+x^7)可以拆成(x^0+x^4)(x^1+x^5+x^7)
(f(x)^{2k}g(x)=f(x^2)^kg(x)),容易发现奇数项和偶数项对答案的贡献是独立的,我们可以分开计算,比如上面的例子就是计算(f(x^2)^k(x^0+x^4))(f(x^2)^k(x^1+x^5+x^7))
对于偶数项,我们把(x^2)看做整体,对于奇数项,我们先提出一个(x),再把(x^2)看作整体,那么就是要求(f(x)^k*(x^0+x^2))(f(x)^k(x^0+x^2+x^3)),这样就可以递归求解了
可以记忆化搜索,时间复杂度是(O(2^{11} imes log(n)^2))

I Segment

unsolved


J Swaps and Inversions

solved by syf


(ans=min(x,y) imes 逆序对个数)

Replay

本场由chelly和syf打的,ch去参加bupt camp了。
开局chelly切了D,syf切了J。后来chelly去想G,首先思考分块,但感觉复杂度很高,后来发现答案肯定不会超过nlogn,于是就用线段树暴力A了。之后syf一直在想E题的构造,但直到终场都没想出,chelly一直在搞F,但复杂度一直是(O(n^3)),无法降下来。于是挂机了三个半小时……

原文地址:https://www.cnblogs.com/Amadeus/p/9367599.html