Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

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

题意:
Fi为斐波那契数列第i项,计算ni=1Fmi

B. Quadratic equation

题意:
p=109+7,然后给出两个式子:

(x+y)bmod

要求找到一组(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 @   Dup4  阅读(150)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf
点击右上角即可分享
微信分享提示