首页 > 其他 > 详细

CF1344

时间:2020-10-16 23:28:52      阅读:53      评论:0      收藏:0      [点我收藏+]

Codeforces Round #639 (Div. 1)

A

\[\large\begin{aligned} x+a_{x \bmod n}&=y+a_{y \bmod n} x-y&=a_{y \bmod n}-a_{x \bmod n} k_1n+i-(k_2n+j)&=a_j-a_i (k_1-k_2)n&=j+a_j-(i+a_i) i+a_i &\equiv j+a_j \pmod{n} \end{aligned} \]

用桶判定即可。

B

发现在同一行或同一列中最多出现一段连续的黑格,不然 \(N\) 极磁铁就会被吸到黑格之间的白格。若某一行不存在黑格,则所有列不能都有黑格,可以在该行中没有黑格的一列放一个 \(S\) 极磁铁,因为当前行列都没有黑格,所以其不会产生影响,列的情况同理。

判完无解后,答案为黑色连通块个数。

C

不等关系具有传递性,将其用有向边表示,即若 \(x_i<x_j\) 则连边 \(i \to j\),有环则无解。

发现当 \(i<j\) 时,若 \(x_i\)\(x_j\) 存在不等关系 \(x_i<x_j\)\(x_j>x_i\) 时,\(j\) 必须为 \(E\),其在图上对应的就是能否到达。那么可以建出正图反图后拓扑排序,求出每个点能到达的最小的编号和能到达该点的最小的编号,通过这个就能判断每个点是 \(A\) 还是 \(E\) 了。

D

\(f_i(x)=x(a_i-x^2),x\in[0,a_i]\),得:

\[\large\begin{aligned} &\Delta f_i(x) =&f_i(x+1)-f_i(x) =&(x+1)(a_i-(x+1)^2)-x(a_i-x^2) =&-3x^2-3x+a_i-1 \end{aligned} \]

因此 \(\Delta f_i(x)\) 是单调不降的。

考虑一开始所有的 \(b_i\) 都为 \(0\),每次可以将某个 \(b_i\)\(1\),要加 \(k\) 次。最优情况下每次操作后的变化量是单调不降的,因此可以二分最后一次操作的变化量,设二分的变化量为 \(v\),得:

\[\large-3x^2-3x+a_i-1 \geqslant v \]

可以通过二分或者求根公式得出每个 \(b_i\) 要至少加多少,根据二分的结果调整即可构造方案。

本题为求多元函数在限制下的极值,因此也可以用拉格朗日乘数法做。其为在满足 \(\sum\limits_{i=1}^n b_i=k\) 的限制下,最大化 \(\sum\limits_{i=1}^n b_i(a_i-b_i^2)\)

\(f(b_i)=\sum\limits_{i=1}^n b_i(a_i-b_i^2),\varphi(b_i)=\sum\limits_{i=1}^n b_i-k\),拉格朗日函数为 \(L(b_i)=f(b_i)+\lambda\varphi(b_i)\)

得拉格朗日函数 \(L(b_i)\) 梯度为 \(0\) 时,\(f(b_i)\) 最优,得:

\[\large\begin{aligned} \nabla_{b_i}L(b_i)=0,\forall i \in [1,n] \nabla_{b_i}\left( \sum\limits_{i=1}^n b_i(a_i-b_i^2)+\lambda\left(\sum\limits_{i=1}^n b_i-k\right) \right)=0,\forall i \in [1,n] a_i-3b_i^2=\lambda,\forall i \in [1,n] \end{aligned} \]

可以二分 \(\lambda\),因为还有 \(b_i \leqslant a_i\) 的限制,得到的 \(b_i\) 可能不合法,因此在外面还要再套一层二分。

E

在?了

F

在?了

CF1344

原文:https://www.cnblogs.com/lhm-/p/13828788.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!