2019牛客暑期多校训练营(第九场)

Contest Info


[Practice Link](https://ac.nowcoder.com/acm/contest/889#question)
Solved A B C D E F G H I J
8/10 Ø O O O O - - O Ø O
  • O 在比赛中通过
  • Ø 赛后通过
  • ! 尝试了但是失败了
  • - 没有尝试

Solutions


A. The power of Fibonacci

题意:
\(F_i\)为斐波那契数列第\(i\)项,计算\(\sum\limits_{i = 1}^n F_i^m\)

B. Quadratic equation

题意:
\(p = 10^9 + 7\),然后给出两个式子:

\[\begin{eqnarray*} (x + y) &\equiv& b \bmod p \\ (x \times y) &\equiv& c \bmod p \end{eqnarray*} \]

要求找到一组\((x, y)\)的解,并且使得\(x \leq y\)

思路:
注意到如果我们知道\(x - y\)的结果,那么就可以代入求解。
并且有:

\[\begin{eqnarray*} (x - y)^2 &=& x^2 + y^2 - 4xy \\ &=& (x + y)^2 - 4xy \\ &\equiv& b^2 - 4c \bmod p \end{eqnarray*} \]

二次剩余求解即可。

C. Inversions of all permutations

题意:
给出一个序列\(a_i\),令\(\{r_i\}\)表示该序列的第\(i\)个排列,令\(t\{r_i\}\)表示该序列第\(i\)个排列的逆序对个数。
计算:

\[\begin{eqnarray*} \sum\limits_{\{r_i\} is\;a\;permutation\;of \{a_i\} } b^{t\{r_i\}} \end{eqnarray*} \]

思路:

D. Knapsack Cryptosystem

折半搜索。

E. All men are brothers

H. Cutting Bamboos

题意:
\(n\)根竹子,每次有一个操作\((l, r, x, y)\),表示要在\([l, r]\)范围内的竹子,切\(y\)刀,每一道切到的竹子高度和要相同,问第\(x\)刀切在的高度是多少?

思路:
二分高度,主席树查询这个高度以上的高度和是否等于前\(x\)刀切去的总量

I. KM and M

题意:
计算:

\[\begin{eqnarray*} \sum\limits_{k = 1}^N ((kM) \& M) \bmod (10^9 + 7) \end{eqnarray*} \]

思路:
按位考虑,只需要考虑\(M\)的二进制位为\(1\)的那些位。
并且考虑\(KM\)其实是一个等差数列,首项为\(0\),公差为\(M\)
那么现在要计算\(KM\)这个等差数列在第\(i\)位上的\(1\)的和,怎么计算?

\[\begin{eqnarray*} \sum\limits_{k = 0}^n (\left\lfloor \frac{kM}{2^i} \right\rfloor \bmod 2) \\ \leftrightarrow \sum\limits_{k = 0}^n \left\lfloor \frac{kM}{2^i} \right\rfloor - 2\left\lfloor \frac{kM}{2^{i + 1}} \right\rfloor \end{eqnarray*} \]

式子的转化可以想象位运算,先右移再左移。
然后就是类欧。

J. Symmetrical Painting

题意:
在二维平面上,有\(n\)个矩形,第\(i\)个矩形的左下角是\((i - 1, L_i)\),右上角是\((i, R_i)\)
你想把一些矩形区域删掉,使得剩下的部分有一个水平的对称轴,使得剩下的面积尽量大。

思路:
大力猜测对称轴肯定是\((L_i + R_i) / 2\),枚举即可。

posted @ 2019-08-26 10:03  Dup4  阅读(149)  评论(0编辑  收藏  举报